所以我给出了这样的场景和功能:
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
然后我清楚地从场景中看到用户做了什么以及需要在测试中检查什么。 E.g。
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!"