Так что я дал такой сценарий и особенности:Тестирование Loging с использованием Behat
Feature: User registration
As an Unregistered User I want to be able to register to the system so that I can use it.
Scenario: User successfully registers
Given I am unregistered user
When I register successfully into the system
Then I should become a registered user
And I should be logged on to the system
Я думал, как написать тест. Что я утверждаю. Давайте поговорим о том, что я должен войти в систему. Я уже несколько раз тестировал phpunit и mocker.
Не знаю, как я могу подтвердить, что пользователь вошел в систему. Имею ли я свободу для проверки? Как проверить, если пользователь видит какой-то div с сообщением - «Вы вошли в систему»? А потом после написания теста - реализовать функцию? Также может случиться, что пользователь будет перенаправлен на другую страницу функций. Я не знаю, какой из них. Если бы я хотел, я мог бы написать проверку теста, пользователь перенаправляется на эту страницу.
Также часть «Учитывая, что я незарегистрированный пользователь» - как она выглядит в тестах? Я предполагаю, что будет какой-то сеанс, и если тесты перед тем, как этот тест будет запущен с зарегистрированным пользователем, тогда, когда в этом тесте - он также войдет в систему. Пришла одна мысль - позвонить по ссылке выхода и проверить ответ 200 каждый раз. Это позволит убедиться, что пользователь не зарегистрирован.
Или, я думаю, я должен обсудить с владельцем бизнеса и спросить, что должно произойти после входа в систему.
Может быть, сценарий даже должен быть изменен так, чтобы было видно, как он будет выглядеть, когда пользователь вошел в систему? Возможно, люди, которые пишут эти сценарии, не думали об этом, и я понимаю, что его трудно задуматься над такими деталями. Только когда вы начинаете внедрять код, возникают вопросы о деталях.
Если мы сравним с примерами с этого сайта:
http://www.netgenlabs.com/Blog/How-to-test-with-Behat
тогда я ясно видно из сценариев, что пользователь делает и то, что должно быть проверено в тестах. Например.
Scenario: Open customer registration page
Given I am on homepage
When I follow "Customer registration"
Then I should be at "/customer-registration"
And I should see "Welcome to customer registration page!"
Зависит, вы хотите протестировать интерфейс пользовательского интерфейса для входа/регистрации или хотите протестировать только логику без интерфейса? – gvf
Я думаю, UI. Я не имею в виду javascript. Но просто пользователь вводил свои данные и вошел в систему. Я разговаривал с парнем, который написал эти спецификации, и он говорит, что плохо указывать точные тексты кнопок и полей, потому что, если мы меняем поле, спецификация также должна быть изменена. –