Задать вопрос
@d2207

В чём разница между е2е и Unit тестами?

Привет! Пытаюсь протестировать агуляр приложение используя protractorи е2етестирование. После того как прочитал уйму статей в интернетах возник вопрос - в чём разница между юнит и е2е тестами? В общем и целом, разницу я понял из статей, вопрос не столько про методологию сколько про структуру и организацию этих тестов. В каких директориях их нужно хранить? Как выглядит древо проекта с е2е и юнит тестами? Как я понял при е2е- все *.spec.ts и *.po.ts складываются в отдельную папку на уровне src. При unitтестах все *spec.ts лежат непосредственно с *.component.ts. Верно? А могут ли е2етесты лежать в папке с компонентами которые они тестируют? Кароче наркоманский вопрос весь день читаю всё что вижу.
  • Вопрос задан
  • 1911 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
@CoyoteSS
Unit тесты (они же модульные тесты).
Фреймворки: Jest, Jasmine/Karma.
Лежат в той же папке рядом с тестируемым файлом и имеют суффикс .spec.
Тестируют один конкретный модуль, под модулем можно понимать конкретную функцию или класс, в общем они тестируют что-то одно и служат прекрасной документацией, которая всегда является актуальной. Для лучшего покрытия кода и его улучшения используется техника TDD (red, green, refactor), сначала пишем тесты, потом код, чтобы эти тесты проходили и рефакторят, затем процесс повторяется. Обычно их пишут чаще, чем e2e тесты и они дешевле, в том плане, что они меньше в плане размера кода и проще для написания.

E2E тесты.
Фреймворки: Cypress, Protractor.
Тестируют часть приложения и их взаимосвязь (тут есть много нюансов), вообщем у них больше зона охвата и они тестируют именно поведение приложения, имитируя действия пользователя. Создаются как отдельный проект.

Вообщем как-то так, имхо.
Ответ написан
Комментировать
Ommonick
@Ommonick
qa+dev (scala, golang, ts/js, api, grpc)
unit test - тест одного модуля
е2е - end to end - тест с заданными рамками

юниты обычно лежат рядом с самими модулями (в golang например client.go и client_test.go рядом - это норм)
а е2е помещаются в отдельную папку test в которой помимо этих е2е всякие helpers и клиенты к вспомогательным сервисам)

и запускаются юниты перед сборкой, а e2e после нее
Ответ написан
Комментировать
Ну технически могут, кто ж вам запретит то.
Но тут надо делать различие больше не технологическое, а бизнесовое.
юнитов - много их запускают перед сборкой/выкаткой приложения, так как они замоканы, проходят быстро и стабильные, ну и они больше технические, нежели бизнесовые
е2е - это уже больше про бизнес-кейсы. Их должно быть мало. Они завязаны на сторонние сервисы, незамоканы и следовательно не стабильны. и запускают их уже в рамках больше регресса. И логично их держать где-то в одном месте, что бы когда их опять придется чинить и править, не искать их черти где.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы