Yas*_*sir 11 asp.net-mvc bdd mspec specflow
我正在学习使用ASP.NET MVC的行为驱动开发,并且基于Steve Sanderson的一篇文章,了解BDD至少可以表示以下测试类型:代码和UI交互的单个单元.这篇文章提到了类似的东西.如果我需要单元测试和集成测试,是否需要两个不同的测试框架?
使用上下文/规范框架(如MSpec)对存储库,控制器和服务进行单元测试.使用它进行测试的结果对开发团队很有用.
使用给定的/ when/then框架测试完整的行为(集成),例如使用Watin的SpecFlow.此测试的结果对我的客户非常有用.
到目前为止我使用BDD看到的视频仅限于在不测试存储库,控制器等行为的情况下测试实体的行为......是否有一个示例项目,我可以看到自动单元和集成测试使用BDD方法?
我个人使用SpecFlow来构建功能特定的测试(即"用户创建新的公司记录"),我有时(但不总是)使用Watin.为了测试我的存储库或服务类,我将使用NUnit的单元/集成测试.集成测试适用于我在测试期间需要与数据库通信的时候,单元用于在没有外部交互的情况下在测试中的目标对象中运行代码.
我会说你不需要使用BDD框架进行非UI测试.如果你愿意,你可以,但没有严格的规则.如果您打算这样做,那么我强烈建议您为测试创建多个项目.保持它们分离是一个好主意,而不是将所有测试混合到一个项目中.你可以命名他们:
MyProject.Tests.Features < - 用于BDD SpecFlow测试.
MyProject.Tests.Integration < - 用于访问外部资源即数据库的测试.
MyProject.Tests.Unit
如果您不想使用两个BDD框架,您仍然可以以BDD方式使用MSTest/NUnit.例如,这篇博客文章描述了一个很好的命名约定,它接近BDD,但针对的是MSTest/NUnit单元测试.在测试存储库之类的东西时,可以将它用于非SpecFlow测试.
总而言之 - 您不必在测试中使用SpecFlow和MSpec,但如果您这样做,那么我建议单独的测试项目.
| 归档时间: |
|
| 查看次数: |
4356 次 |
| 最近记录: |