Asp.net mvc BDD和ASP.NET MVC-寻找高速公路
大约半年前,我开始钻研单元测试。我进入了TDD(或者我认为是什么),现在我想开发一个行为驱动的MVC应用程序。 验收测试(真正的端到端)的概念对我来说是新的,因为我的上一个项目没有在可验收测试的环境中运行 我从读一些好文章开始,尤其是Sanderson的文章,并通过阅读他关于这个主题的书来支持我的MVC技能 我正在使用SpecFlow和SimpleBrowser进行端到端测试。 通过导航栏驾驶导航是小菜一碟,但是我现在被卡住了。 我的目标是实现用户帐户,以便进一步创建文章和评论。驾驶注册程序让我头疼。给定此功能文件:Asp.net mvc BDD和ASP.NET MVC-寻找高速公路,asp.net-mvc,bdd,specflow,end-to-end,Asp.net Mvc,Bdd,Specflow,End To End,大约半年前,我开始钻研单元测试。我进入了TDD(或者我认为是什么),现在我想开发一个行为驱动的MVC应用程序。 验收测试(真正的端到端)的概念对我来说是新的,因为我的上一个项目没有在可验收测试的环境中运行 我从读一些好文章开始,尤其是Sanderson的文章,并通过阅读他关于这个主题的书来支持我的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 | test.address@test-server.com |
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!"
我真的不知道如何提供必要的测试环境(本例中是一个邮件服务器)并降低测试的脆弱性(考虑将“Create”按钮重新标记为“Submit”)。更不用说在捕获生成器中编织以防止以后自动创建用户(哦,讽刺的是)。也许我只是想得太多了,这在TDD中是不应该的,但有时我只是盯着屏幕思考我的下一个测试
苏。。在这段文字之后,实际的问题是:我应该如何实施这种行为
- 根据实现捕获逻辑的需要,坚持UI级测试和重构
- 退回到控制器级测试
- 你有没有其他方法可以启发我
也就是说,大约75%的测试是针对第2项(SpecFlow),15%针对第3项(QUnit)。这对我来说似乎是可行的,但是任何建议都是非常受欢迎的。我不会在一个测试中同时单击创建按钮和单击确认链接。我会完成第一个测试(点击创建按钮),因为我会看到一些信息,上面写着检查我的电子邮件。如果您想测试其余的行为,您应该创建另一个测试,在该测试中,您应该看到一个确认URL并单击它,您应该看到欢迎页面 但是在端到端场景中,我应该从哪里获得第二个测试的确认链接呢?你真的为此触摸了你的测试数据库吗?这取决于你,你可以运行代码来生成一个新的用户和确认链接,然后将其传递给你的测试,或者你甚至可以模拟检查来查看两个场景(成功和失败)。