Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit-从类型转换返回模拟对象_Java_Unit Testing_Junit_Casting_Mockito - Fatal编程技术网

Java JUnit-从类型转换返回模拟对象

Java JUnit-从类型转换返回模拟对象,java,unit-testing,junit,casting,mockito,Java,Unit Testing,Junit,Casting,Mockito,我的代码如下所示: ClassB objB = (ClassB) objA; int z = objB.ClassBMethod(); int y = objA.ClassAMethod(); ClassA mockClassA = mock(ClassA.class); when(mockClassA.ClassAMethod()).thenReturn(1); 目前,我的单元测试如下所示: ClassB objB = (ClassB) objA; int z = objB.ClassB

我的代码如下所示:

ClassB objB = (ClassB) objA;
int z = objB.ClassBMethod();

int y = objA.ClassAMethod();
ClassA mockClassA = mock(ClassA.class);
when(mockClassA.ClassAMethod()).thenReturn(1);
目前,我的单元测试如下所示:

ClassB objB = (ClassB) objA;
int z = objB.ClassBMethod();

int y = objA.ClassAMethod();
ClassA mockClassA = mock(ClassA.class);
when(mockClassA.ClassAMethod()).thenReturn(1);

我如何模拟
objA
ClassB
的转换,以便模拟
ClassB方法()

我真的希望
ClassB
ClassA
的子类。。。试试这个:

ClassA mockB = mock(ClassB.class);

这将为您提供一个模拟对象,它实际上是
ClassB
的一个实例,但您将其视为
ClassA
,然后可以成功地进行转换。

这是否允许我模拟ClassA和ClassB方法?最好的方法是尝试一下。我应该问:“它应该允许我模仿ClassA和ClassB方法吗?”因为它没有。你能解释一下吗?要么扩展这个问题,要么打开一个新的问题,并具体说明你认为它应该做什么以及它实际上在做什么。现在我真的不明白问题是什么。