我正在使用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 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();
}
我希望在调用mockedSchool
时将foo.getStudent(school)
作为参数传递,如何在Mockito中声明此内容?
似乎Mockito只有when(...).thenReturn()
,但有类似when(...).thenPassArgument(mockedObject)
的内容吗?
答案 0 :(得分:0)
问题在于你在doSomething方法中实例化School类的方式;当你在现场实例化时,你不能使用mockito使用mock重载该实例化。
如果您将其作为doSomething的参数传递,您应该能够执行此操作。
我相信PowerMock可以帮助你,如果你想超载内部结构。
答案 1 :(得分:0)