Я гуглил по этому поводу, но не нашел ничего подходящего. У меня есть что-то вроде этого:
Object obj = getObject();
Mockeable mock= Mockito.mock(Mockeable.class);
Mockito.when(mock.mymethod(obj )).thenReturn(null);
Testeable testableObj = new Testeable();
testableObj.setMockeable(mock);
command.runtestmethod();
Теперь я хочу убедиться, что mymethod (Object o)
, который вызывается из runtestmethod ()
, был вызван с Object o
, а не любые другие. Но я всегда прохожу тест, независимо от того, что я ставлю на проверку, например, с помощью:
Mockito.verify(mock.mymethod(Mockito.eq(obj)));
или
Mockito.verify(mock.mymethod(Mockito.eq(null)));
или
Mockito.verify(mock.mymethod(Mockito.eq("something_else")));
Я всегда прохожу тест. Как я могу выполнить эту проверку (если это возможно)?
Спасибо.
eq
, если вы не используете другие сопоставители. .verify(mock)
. Теперь вы инициируете проверку результата вызова метода, ничего не проверяя (не выполняя вызов метода). Следовательно, все тесты проходят. Ваш код должен выглядеть так:
Mockito.verify(mock).mymethod(obj);
Mockito.verify(mock).mymethod(null);
Mockito.verify(mock).mymethod("something_else");