我在类underTest
中有一个方法BeingTested
,正在为此进行单元测试。该方法对私有方法calledTwice
进行了两次调用,该私有方法返回一个Document。我需要对calledTwice
进行存根处理,以便它在每次调用时返回一个不同的Document(第一个调用doc1,第二个调用doc2)。 calledTwice
接受类AnotherClass
的实例作为参数,并且在两次调用underTest
之间对该类的实例进行了更改。
这是我尝试执行的操作:
Class BeingTested{
public void underTest{
/*some code*/
Document doc = calledTwice(AnotherClass o);
/*some code, with changes made to o*/
doc = calledTwice(AnotherClass o);
/*some code*/
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(BeingTested.class)
class TestClass{
@InjectMocks
BeingTested beingTested;
public void testMethod(){
Document doc1 = new Document().append("someField", "someValue");
Document doc2 = new Document().append("error", "Error");
/*some code*/
PowerMockito.when(beingTested, "calledTwice").thenReturn(doc1).thenReturn(doc2);
/*some code*/
}
}
它不起作用,因为它实际上被称为calledTwice
。有关如何执行此操作的任何想法?
答案 0 :(得分:0)
使用Mockito代替
Mockito.when(beingTested, "calledTwice").thenReturn(doc1).thenReturn(doc2);