Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 October 08

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
зависит от того что тестировать )

У нас на фронтенде это вырождено в отдельную драму отрицания необходимости юнит-тестов
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
пропагандируют "Write integration tests. Not too many"
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Мило, но я от фронта далек 🤷‍♂
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Хотя с клиентом без логики имеет смысл
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
я покрываю "классическими юнит-тестами" узлы с важной логикой которая сконцентрирована внутри узла
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
но обычно мои тесты - определенного уровня интеграционности
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
А если я тестирую репозиторий? Что-то мокать в нем нет смысла, потому что методы кроме как отправки запросов к бд и мапинга ничего не делают. Поэтому нужно подключать базу с тестовыми данными. Это тоже юнит тест?
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Классические юниты глазами Лондонов, так сказать
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
нет, это интеграционный
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
А если брать за основу ответ https://t.me/nodeua/55650, то юнит. Или я что-то неправильно понял?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
боюсь тут надо углубиться в теорию )
источник

АБ

Артур Бердыев... in NodeUA - JavaScript and Node.js in Ukraine
кстати никогда не понимал смысл такого теста именно с боевой базой, а не каким-то spy, чтобы удостовериться, что аргументы куда надо идут
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Если брать за основу этот ответ то стоит открыть книжку и почитать :)
Репозитории и инфру советую крыть ИТ
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Я обязательно почитаю книгу. Но сейячас я явно не успею это сделать 🙂
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
вместо того чтобы стабать Gitlab::HTTP я высокоуровнево стабаю request осознанно превращая тест в интеграционный, потому что мне важно в тесте описать и проверить поведение, а не то, какая библиотека была использована
источник

АБ

Артур Бердыев... in NodeUA - JavaScript and Node.js in Ukraine
Аж глазу приятно на такие тесты смотреть в плане структуры)
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Тогда тлдр
Покрытие 100% - бесполезная гонка, так что не надо крыть все подряд юнитами
Там где мы можем получить хрупкие юнит тесты ( например квери для бд ) надо брать ИТ и ассертить шо у нас в итоге в бд
Аргументация в литературе
источник

АБ

Артур Бердыев... in NodeUA - JavaScript and Node.js in Ukraine
А может кто подсказать true way юнит тестирования классовых сервисов с рядом зависимостей, правильно понимаю, что лучший способ - делать прям в тестах моки по интерфейсам зависимостей и потом уже собирать класс? Получается как-то слишком громоздко или я не туда копаю?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Хорошо

Но я так и не понял. Исходя из твоего ответа, юнит тестом покрывается единица поведения. У меня метод репозитория это единица поведения полчается, так как без доступа к данным там тестить нечего. Значит тест репозитория это юнит тест?
источник