Я играю с EasyMock и обнаружил кое-что, чего не понимаю.
Я получил предметный класс A
(тот, который тестируется) где A.equals(Object o)
равен @Override
. Когда я выполняю приведенный ниже тест, я получил покрытие в методе A.equals
:
@Test
public void acceptVisitor() {
subject = EasyMock.createMockBuilder(VariableNode.class).createMock();
ITermVisitor termVisitor = EasyMock.createMock(ITermVisitor.class);
termVisitor.visit(subject);
EasyMock.replay(subject, termVisitor);
subject.accept(termVisitor);
EasyMock.verify(subject, termVisitor);
}
Я не понимаю, почему. Итак, вот мои вопросы:
- Использует ли EasyMock
.equals(Object o)
, чтобы увидеть, используют ли тестовый вызов и ожидаемый вызов одни и те же аргументы? - Если да, есть ли способ заставить его использовать оператор
==
, а не.equals(Object o)
?
заранее спасибо.
.same(Object o)
и.equals(Object o)
. Но действительно ли.equals(Object o)
используется для сравнения аргументов, используемых в ожидаемом состоянии макета, и аргументов, используемых в состоянии воспроизведения макета? - person FoxNounours   schedule 30.10.2017equals
методаA
, запустив этот тест в отладчике и проверив стек, когда он достигнет точки останова. - person Dawood ibn Kareem   schedule 31.10.2017