2016-04-10 4 views
0

Так что я дал такой сценарий и особенности:Тестирование 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!" 
+0

Зависит, вы хотите протестировать интерфейс пользовательского интерфейса для входа/регистрации или хотите протестировать только логику без интерфейса? – gvf

+0

Я думаю, UI. Я не имею в виду javascript. Но просто пользователь вводил свои данные и вошел в систему. Я разговаривал с парнем, который написал эти спецификации, и он говорит, что плохо указывать точные тексты кнопок и полей, потому что, если мы меняем поле, спецификация также должна быть изменена. –

ответ

0

Первый сценарий - как он должен выглядеть, а второй - как не следует.

Язык окультуры не является языком программирования, и его целью является охват бизнес-примера.

Как вы выполняете выполнение каждого шага, зависит только от вас и от вашего приложения. Реализация также зависит от уровня, который вы используете для тестирования. Если ваше приложение изменится, но функция останется прежней, вы не должны ничего менять в файле свойств.

Смежные вопросы