мені здавалося, що мокати треба саме тоді, коли в юніт тесті треба перевірити функціонал, що залежить від зовнішніх сервісів. І в нас є юніт-тест з моком, та інтеграціоний тест який вже тестує все.
Пишіть Unit-тести так, щоб тестувати бізнес-логіку, а не вміння використовувати Mockito.
Ну й хто в продакшені так робить й чим керується? «Я вмію користуватись Mockito.
Фаулер (а можливо навіть не він) спробував впорядкувати і класифікувати підходи.
Це благородна ціль. Але занадта суворість у класифікації часто не іде на користь. У випадку розрізнення mock і stub, провести точну межу неможливо. Я саме про це.
Ну як завжди, www.joelonsoftware.com/2002/05/06/five-worlds
Дякую. Я вже почав відчувати себе занадто старим, бо знаю про Фаулера, а виявляється, що є ще навіть ті хто пам’ятають Джоела :)
Фаулер може писати що завгодно, але, наприклад, пітонівський unittest.mock
Фаулер (а можливо навіть не він) спробував впорядкувати і класифікувати підходи. Те що є купа людей, які іпали в них розбиратись у відносно базових підходах — це їх проблема.
Так, але, на жаль, часто моки використовують там, де їх використовувати не треба
Що значить «не треба»? Ви можете чітко показати, що є сценарій де це «не доцільно», тобто заважає (саме це зазвичай мають на увазі коли говорять «не треба»).
Але щойно з’являється щось складніше — хоча б якась бізнес логіка (перевірка на консистентність переданих даних, якась особлива фільтрація чи сортування, перемаплення не 1-в-1 а щось поскладніше) — то вже можна юніт-тестувати.
Коментарі