繁体   English   中英

如何在ASP.NET MVC多层应用程序中正确进行单元测试?

[英]How to correctly do unit-tests in ASP.NET MVC multi-layer application?

我在具有单片架构的小型ASP.NET MVC项目中使用了单元测试。 在这种情况下,我只有2个项目,如SampleApplicationNameSampleApplicationName.Tests

现在,我正在一个由3名开发人员组成的团队中,在一个非常好的n层架构的大项目上工作。 我们有5个项目在解决方案:

1.Data(POCO),2.DataAccess(EF),3.Common(这里是助手),4.Business,5.UI(ASP.NET MVC5)。

这里提出一个问题。 我该如何管理测试? 它应该是每个存在的项目(如Business.Tests,DataAccess.Tests)的单独测试项目,还是我只需要测试最终结果? 我的意思是每个方法都从UI运行完整路径 - > BLL - > DAL,那么我应该单独测试每个项目还是只有一个测试项目?

通常你会最终得到

  • 每个项目的单独的单元测试项目,其中包含逻辑内部(如果您只是将POCO保留在项目中,它可能不值得专用的UT项目)是可测试的(您可能希望跳过DataAccess层)
  • 几个集成测试项目(UI和DataAccess层可能是这里的好选择,尽管您可能以不同的方式,按场景构建您的IT项目 - 甚至可以在一个地方一起构建)

我的意思是每个方法都从UI运行完整路径 - > BLL - > DAL,那么我应该单独测试每个项目还是只有一个测试项目?

因此,在这种情况下,您可能会为每个项目定位一个单独的UT项目(虽然,这可能与EF相比很棘手),以及实际完成整个工作流程的单个IT项目。

根据我的经验,您应该分别彻底地对每一层进行单元测试(或数据层的集成)。 这是第一次,但是一旦你有了这个,那么对你的实际产品功能进行一些端到端的测试是个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM