0
У меня есть прецедент, где я должен проверить реальный метод, который вызывает метод внутри. Этот внутренний метод надо издеваться. Например,Использование Mockito spy для издевательства метода без указания точного аргумента
Class Sample {
boolean method(Foo foo) {
return innerMethod(new Goo(foo));
}
}
Так что я хочу сделать следующее.
Sample sample = Mockito.spy(new Sample());
Foo foo = new Foo();
doReturn(false).when(sample).innerMethod(new Goo(foo));
assertEquals(false, sample.method(foo));
Проблема заключается в том, как я полагаю, внутренний метод никогда не издевался, так как аргументы Goo
не являются одними и теми же объектами. Как мне обойти эту проблему?
Используйте Сличитель: http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html#3 –
Почему вы заботитесь, что его называют внутренний метод? Мне кажется, что вы тестируете свою внутреннюю реализацию вместо поведения. Почему бы вам просто не написать тест, который задал Foo в каком-то состоянии, он должен возвращать false/true? – blank
@JBNizet, что было очень полезно. Используются 'Mockito.eq' и' Mockito.argThat' с расширением 'ArgumentMatcher'. –
user592748