Junit Mockito:将模拟对象作为参数传递给函数(调用函数时)
我正在使用编写一个简单的单元测试 我有一个功能要测试:Junit Mockito:将模拟对象作为参数传递给函数(调用函数时),junit,mockito,Junit,Mockito,我正在使用编写一个简单的单元测试 我有一个功能要测试: public void doSomething() { foo.getStudent(new School()); } 我的测试用例: @Test public void testDoSomething() { Foo mockedFoo = Mockito.mock(Foo.class); School mockedSchool = Mockito.mock(School.class); // I want to
public void doSomething() {
foo.getStudent(new School());
}
我的测试用例:
@Test
public void testDoSomething() {
Foo mockedFoo = Mockito.mock(Foo.class);
School mockedSchool = Mockito.mock(School.class);
// I want to pass the mocked school as parameter when food.getStudent(school) is called
// how to pass mocked school to method?
when(mockedFoo.getStudent(???))
// run the method under test
myService.doSomething();
}
我想在调用foo.getStudent(school)
时将mockedSchool
作为参数传递,如何在Mockito中声明
似乎Mockito只有
when(…).thenReturn()
,但是否有类似when(…).thenPassArgument(mockedObject)
?问题在于你用doSomething方法实例化学校班级的方式;当您在现场实例化它时,您不能使用mockito使用mock重载该实例化
如果您将其作为doSomething的参数传递,您应该能够执行此操作
我相信,如果您想让内部结构过载,PowerMock可以帮助您。问题在于您用doSomething方法实例化学校类的方式;当您在现场实例化它时,您不能使用mockito使用mock重载该实例化 如果您将其作为doSomething的参数传递,您应该能够执行此操作
我相信,如果您想重载内部构造,PowerMock可以帮助您。由于您不需要在
School
实例中断言,只需将模拟实例作为参数传递,您可以执行以下操作:
mockedBar.getStudent(Mockito.isA(School.class));
请阅读有关
isA(java.lang.Class clazz)
的文档,因为您不需要在School
实例中断言,只需将模拟实例作为参数传递,您可以执行以下操作:
mockedBar.getStudent(Mockito.isA(School.class));
请阅读有关isA(java.lang.Class clazz)
的文档