当前位置 : 主页 > 手机开发 > 其它 >

单元测试 – 如何将“完整堆栈”功能分解为验收,集成和单元测试?

来源:互联网 收集:自由互联 发布时间:2021-06-22
我是行为驱动开发的新手,我正在努力学习它.我正在使用MSpec用于验收测试的Watin和用ASP.Net MVC 4进行单元测试的MSpec.我有一个简单的用户注册方案. When a user enters username, password, email, et
我是行为驱动开发的新手,我正在努力学习它.我正在使用MSpec&用于验收测试的Watin和用ASP.Net MVC 4进行单元测试的MSpec.我有一个简单的用户注册方案.

When a user enters username, password, email, etc. and clicks on register button
It should validate email address
It should check that the username already does not exist
It should register the user
It should send a welcome email
It should redirect to the home page

我想测试的东西无法使用Watin测试,例如发送电子邮件,检查用户是否存在等等.这些将是控制器测试的一部分.这是否意味着我的验收测试只会是当用户注册时他应该被重定向到主页?如何将整个过程分解为测试?

如果这些检查是在各种测试和不同级别实现的,那么如何获得MSpec提供的已实现所有功能的摘要报告?关于人们如何打破这些任务,然后他们如何获得集体报告等,我感到有点困惑.

您的单元测试包括以下内容:

>如果未给出用户名,请测试注册用户的代码是否会引发异常.
>测试验证密码的代码是否有效.

基本上采用小单位的代码并测试它们.

对于验收测试,您将其提升到一个新的水平并集成这些功能以确保它们正常工作.所以你可以进行验收测试来检查整个注册功能:

Given I am a new user
When I complete the register user form
Then I will be redirected to the home page

Given I am a new user
When I complete the register user form
And I have not entered a valid password
Then I will be shown an error message

或者该地区的某些东西.

就个人而言,我不是编写测试用户界面的测试的忠实粉丝,因为UI可以经常更改(意味着你必须修复被这些更改破坏的测试);再加上我觉得我通过编写单元测试然后进行验收测试来重复工作.

但是,ATDD可以使您受益,因为您可以与他们沟通您如何测试应用程序.向他们展示BDD测试(写入文本)而不是公共无效ValidatePassword_PasswordNotValid_ExpectFalse要容易得多.

这是您需要尝试ATDD以了解您是否会从中受益的情况之一.

网友评论