我正在学习使用 ASP.NET MVC 进行行为驱动开发,并且基于a post http://blog.stevensanderson.com/2010/03/03/behavior-driven-development-bdd-with-specflow-and-aspnet-mvc/Steve Sanderson 的文章指出,BDD 至少可以表示以下测试类型:单独的代码单元和 UI 交互。类似的事情在这个帖子 http://ntcoding.blogspot.com/search/label/BDD。如果我想要单元测试和集成测试,我是否需要两个不同的测试框架?
到目前为止,我看到的有关使用 BDD 的视频仅局限于测试实体的行为,而没有测试存储库、控制器等的行为...是否有一个示例项目,我可以在其中使用BDD 方法?
就我个人而言,我使用 SpecFlow 来构建特定于功能的测试(即“用户创建新公司记录”),有时(但并非总是)我会使用 Watin。为了测试我的存储库或服务类,我将使用 NUnit 进行单元/集成测试。集成测试适用于我在测试期间需要与数据库进行通信的情况,单元测试适用于我只需在被测目标对象中运行代码而无需外部交互的情况。
我想说的是,您不需要为非 UI 测试使用 BDD 框架。如果你愿意的话可以,但是对此没有硬性规定。如果您打算这样做,那么我强烈建议您为测试创建多个项目。将它们分开是一个好主意,而不是将所有测试混合到一个项目中。你可以给它们命名:
MyProject.Tests.Features
MyProject.Tests.Integration
我的项目.测试.单元
如果您不想使用两个 BDD 框架,您仍然可以以 BDD 方式使用 MSTest/NUnit。例如,this http://ardalis.com/Unit-Test-Naming-Convention博客文章描述了一个很好的命名约定,它接近 BDD,但针对 MSTest/NUnit 单元测试。当您测试存储库等内容时,您可以将其用于非 SpecFlow 测试。
总之 - 您不必在测试中使用 SpecFlow 和 MSpec,但如果您这样做,那么我建议单独的测试项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)