Итак, у меня есть метод, который выглядит примерно так:
public Foo method() {
...
return service.get();
}
service
- это внешняя зависимость класса.
Мой тестовый код:
Foo mockServiceResponse = Mockito.mock(Foo.class);
when(service.get()).thenReturn(mockServiceResponse);
В моем модульном тесте я внедряю макет, созданный с помощью Mockito, и задаю when
для service.get()
, поэтому мой вопрос в том, как проверить возвращаемое значение method
?Если я просто проверю, равняется ли mockServiceResponse
method()
, то тест не проверяет много, поскольку, если кто-то изменит method
на:
public Foo method() {
...
Foo f = service.get();
f.setId(null);
return f;
}
Мой тест все равно пройдет, чтоочевидно, что неправильно, так как я должен это проверить?
ПОЯСНЕНИЕ: Я хочу проверить, что method
не меняет объект, возвращенный с service.get()
(то есть, я хочувторая заглушка, которая провалила мой тест), проблема в том, что фиктивные объекты просто игнорируют вызываемые им методы (например, setId()
), не проваливая тест.