Как стать автором
Обновить

Комментарии 11

Классная статья. Вроде бы уже множество раз про mockito расказанно, но тут все собранно вместе
Спасибо. Примерно так и задумывалось.

Используйте JUnit вместо TestNG — тогда вся последняя часть про Mock.reset станет просто не нужна. Прелесть JUnit в том, что он создаёт новый инстанс класса перед каждым тестом, так что мок из предыдущего теста не может повлиять на следующий. Ничего сбрасывать не нужно.

Спасибо, интересный момент; отметил в тексте. Выбрасывать этот кусок вообще, думаю, не стоит; идея в том, чтобы описать возможности непосредственно Mockito, не привязываясь к конкретному тестовому фреймворку.
Если у меня метод возвращает примитивный тип. Мокито не желает возвращать примитивы все обьекты норовит. Из за жтого возникают warnings компилятора про autoboxing. Так целые тесты в ворнингах из за этого. Что делать?

Отключить эти ворнинги, как минимум в тестах.

Не заметил этого, кстати; добавил в статью. Увы, похоже, с этим ничего не поделаешь — возвращаются только объекты, так что присоединюсь к предыдущему комментатору: попробуйте отключить эти ворнинги.

Предположу, что причина в нежелании авторов создавать для каждого примитива отдельные методы задания возврата, свой Answer, свой набор конкретных его реализаций… возни много, а толку, в сущности, чуть.
Mockito.when(dataService.getDataItemById("idValue"))
       .thenReturn("dataItem");
// or
Mockito.when(dataService.getDataItemById(Mockito.eq("idValue")))
       .thenReturn("dataItem");


Забыли рассказать, когда можно аргумент передавать простым объектом (как в первом варианте) а когда нужно использовать матчеры. Как я понял, если метод принимает несколько аргументов и вы используете хотя бы один матчер (any() например), то все отсальные аргументы тоже должны использовать матчеры.
Да, так и есть. На самом деле это тоже упомянуто — в самом конце того же раздела, там, где речь о работе с методами, имеющими больше одного параметра.
Спасибо, очень хорошо расписаны большинство главных моментов.
Спасибо =)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации