Я написал приемочный тест для входа в систему с использованием Codeception, который проверяет, может ли пользователь:
1. Войти с действительными учетными данными
Логин с действительными учетными данными открывает страницу, заполняет поля, отправляет и проверяет, что пользователь теперь находится на панели инструментов.
2. Не входить с неверными учетными данными
Логин с неверными учетными данными делает то же самое, но при отправке я проверяю сообщение о том, что комбинация имени пользователя и пароля неверна
3. Не войти в систему с пустыми учетными данными
Логин с пустыми учетными данными делает то же самое, но при отправке я проверяю сообщения в элементах, которые появляются под входами формы, указывающими, что это поле является обязательным.
Это похоже на почти приемлемый набор тестов для входа в систему (может быть, я не знаю, на самом деле), но тогда он не проверяет различные комбинации недопустимых имен пользователей (адресов электронной почты) и пароля (длина не менее 8 символов), но я не уверен, что попытка отправить массив потенциально недействительных писем и проверка пользовательского интерфейса — это то, что вы хотите сделать в приемочном тесте … это скорее модульный тест?
Подумайте заранее, где вы проведете черту на приемочных тестах, так как это сравнительно небольшой пример, но некоторые из форм будут довольно большими, поэтому, если я подумаю над формой ввода 30+, чего я должен пытаться достичь в моем приемочном тесте а что должно быть выделено на юнит тест?
Модульные тесты и приемочные тесты служат разным целям, обеспечивают различный уровень детализации и обычно пишутся разными людьми (соответственно, инженером-программистом и инженером-тестировщиком).
В случае неудачи ваших приемочных тестов, вы будете знать, что функция входа не работает, как задумано. В случае неудачи ваших модульных тестов вы будете знать, какой фрагмент кода не работает должным образом, потому что он имеет доступ к реальному коду (например, ваш алгоритм хеширования пароля не работает).
При написании тестовых случаев имеет смысл взглянуть на Классификация Эквивалентность. Для пароля вам необходимо проверить: пустой пароль, 7-символьный пароль, 8-символьный пароль, пароль длиной от 0 до 7, пароль с недопустимыми символами и т. Д. (Зависит от ваших требований).
Других решений пока нет …