Когда я шпионил за классом, он также шпионит за всеми членами этого класса? Например, скажем, я делаю класс Pair и проверяю реализацию toString (не лучший пример всего времени).Mockito spy: также шпионить за членами?
public class Pair<L,R> {
L left;
R right;
// ... getters setters etc
public String toString() {
return "(" + getLeft() + ", " + getRight() + ")";
}
}
Скажите, что я хочу обеспечить, чтобы как левое, так и правое название вызывали toString.
@Test
public void testToString() {
classUnderTest = spy(new Pair<>(...));
String str = classUnderTest.toString();
verify(classUnderTest.getLeft()).toString(); // does it actually verify?
verify(classUnderTest.getRight()).toString();
}
Что происходит, когда вы его проверяете? Прочтите, прежде чем делать: https://github.com/mockito/mockito/wiki/FAQ#can-i-verify-tostring –
@Compass нет, это правильно, как есть. –
@JBNizet - они проходят. Прочитав еще несколько, это выглядит так, как будто это ведет себя так, как ожидалось. Я не знал, что проверка завершилась неудачно, если вы не передали ей макет/шпион. toString здесь был всего лишь примером, мой реальный код отличается. – twentylemon