大约半年前,我开始深入单元测试。我进入了TDD(或者我认为的那样),现在我想开发一个MVC应用程序行为驱动。 验收测试(真正的端到端)的概念对我来说是新的,因为我的上一个项目没有在验收测试环境中运行。BDD和ASP.NET MVC - 寻找高速公路
我开始阅读一些很好的文章,特别是Sanderson的http://blog.stevensanderson.com/2010/03/03/behavior-driven-development-bdd-with-specflow-and-aspnet-mvc/,并且通过阅读他关于该主题的书来支持我的MVC技能。
我使用SpecFlow和SimpleBrowser进行端到端测试。 通过导航栏驾驶导航是一块蛋糕,但我现在卡住了。 我的目标是实现用户帐户,以进一步创建文章和评论。驾驶注册过程让我头痛。鉴于此功能的文件:
Feature: User accounts
In order to customize and influence page content
As a user
I want to able to create an own user account
Scenario: Create a user
Given I am on the /Account/Create page
When I fill out the registration formular as follows
| NickName | EmailAddress |
| test123 | [email protected] |
And I click the "Create" button
And I clicked the link in the authentication mail
Then I should be on the root page
And I should see the message "Welcome test123!"
我真的不能弄清楚如何提供必要的测试环境(在本例中,邮件服务器)并进行测试不太脆(想重新标记“创建”按钮的“提交”)。更不用说在捕捉生成器中编织,以防止自动创建用户(讽刺)。也许我只是在想太多,你实际上不应该在TDD中,但有时我只是盯着屏幕,想着我的下一个测试。
那么......在文本墙后的实际问题:我应该如何实现这种行为?
- 玉碎UI水平测试,并实现采集逻辑
- 回落到控制器级别的测试需要重构
- 你见识一下
但是从哪里可以获得端到端场景中第二次测试的确认链接?你真的碰到你的测试数据库吗? –
这取决于你,你可以运行代码来生成一个新的用户和确认链接,然后将它传递给你的测试,或者你甚至可以嘲笑支票以查看两种情况(成功和失败)。 –