Совместные тест для связанных действий. Правильно ли?
Пишу системные тесты для веб-приложения на nodejs, приложение тестируется как черный ящик по http.
Написал уже для всех действий аутентификации. Сейчас заканчиваю акшены с пользовательским профилем. Дошел до удаления.
Так вот в первом тесте (регистрация) последним кейсом выполняется проверка регистрации юзера при отправке правильных данных. После теста, чтобы прибрать за собой, выполняется действие удаление профиля.
Теперь собственно говоря я подошел к необходимости протестировать удаление. Но для начала получается, что мне необходимо зарегистрировать пользователя, чтобы протестировать его удаление.
Очень удобно было бы сделать эти два экшена в одном тесте разными кейсами, чтобы в одном случае не убирать за собой после регистрации, а во втором не подготавливать профиль для удаления перед тестом.
Или не стоит заморачиваться и делать как и полагается, два отдельных теста?
После теста, чтобы прибрать за собой, выполняется действие удаление профиля.
значит удаление уже покрыто.
можно тестировать явно (отдельным тестом) а можно неявно (внутри другого теста как действие). Разница будет в том, что в одном случае красный тест будет указывать на единственную проблему (предмет теста), а во втором причин может быть несколько. Вот и думайте что вам важнее.
Я например, реюзаю состояние системы для последующих тестов, потому что нам важно экономить время выполнения, т.к. UI тесты выполняются долго. Они у меня поделены на контексты (в вашем случае, "без пользователя" и "с пользователем", и для каждого контекста первым тестом выполняется настройка входных условий а последним восстановление состояния системы. Последовательность выполнения тестов обеспечивается фреймворком. Конечно если восстановление состояния системы завалится, то последующие тесты тоже завалятся, но причину можно легко определить. Это не канонично, но работает. Ошибки находятся. А это главное.