testing-aqa middle
В чём разница: when/thenReturn vs doReturn/when?
Ответ
when(x.method()).thenReturn(y) — стандартный способ. doReturn(y).when(x).method() — нужен для spy (иначе вызовется реальный метод) и для void-методов.
Разбор: when(x.method()).thenReturn(y) читаемее, но фактически вызывает x.method() при настройке — для spy это запустит реальную реализацию, поэтому там и для void-методов используют doReturn(y).when(x).method(), не вызывающий метод. Дистракторы переворачивают роли spy/mock, объявляют формы эквивалентными или приписывают им работу со static/final, что Mockito так не решает.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.