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

时间:2016-09-05 03:28:33

标签: c# asp.net-mvc unit-testing

我在具有单片架构的小型ASP.NET MVC项目中使用了单元测试。在这种情况下,我只有2个项目,如 SampleApplicationName SampleApplicationName.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,我应该单独测试每个项目还是只有一个测试项目?

2 个答案:

答案 0 :(得分:2)

通常你最终会以

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

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

因此,在这种情况下,您可能会针对每个项目定位一个单独的UT项目(尽管对EF来说可能很棘手),以及一个实际贯穿整个工作流程的单个IT项目。

答案 1 :(得分:0)

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