@Biaci_Anj

Нужно ли проверять при тестировании вызывались ли методы с точным соответствием нужному объекту при помощиrefeq() или any() достаточно?

Допустим, мне нужно протестировать save метод. Мне нужно проверять, что repository.save() вызывается с конкретным объектом? Или any() вполне достаточно, как тут?
@Test
void givenProductToAddShouldReturnAddedProduct() throws ProductAlreadyExistsException{
     //stubbing
     when(productRepository.save(any())).thenReturn(product1);
     productService.addProduct(product1);
     verify(productRepository,times(1)).save(any());

Или, к примеру, в тестировании контроллеров, надо ли мне проверять, что объект полученный в результате @RequestBody передается в сервис при помощи refeq() или я могу спокойно вызывать опять-таки any().

Для меня тестирование новая вещь и я смотрю на примеры кодов, которые нахожу в интернете и часто вижу any(). И нахожусь в тотальном непонимании, стоило ли мне писать refeq() везде.

Может есть какой-то чеклист, что проверять?
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
any() используется для моков. Моки ничего не проверяют, моки - это условности. Поэтому там any().
Если вы хотите проверить сохранение в БД - вам надо поднять БД, сохранить объект, достать сохраненый объект из бд и сравнить с исходным.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы