У меня есть метод underTest
в классе BeingTested
, для которого я делаю юнит-тесты. У метода есть два вызова закрытого метода calledTwice
, который возвращает Document. Мне нужно заглушить calledTwice
, чтобы он возвращал разные документы при каждом вызове (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
. Есть идеи, как это сделать?