所以,我正在咬紧牙关,试图开始使用asp.net MVC,单元测试和TDD。
我对所涉及的概念有一个模糊的理解,也就是说有点超出“Hello World”级别,但仍然很绿。我已准备好让橡胶遇到这条路,但是 在过去的半小时里,我发现自己正盯着VS中的“新建项目”对话框...... 你是如何组织单位测试的呢?
我看到使用标准的VS Unit Test项目类型,它为单元测试创建了一个单独的项目。这是我在使用NUnit时应该如何进行的?或者,测试应该与正在测试的代码放在同一个项目中吗?
我发现的“单元测试入门......”类型教程似乎都没有解决这个问题。
答案 0 :(得分:8)
测试应该在单独的项目中维护,因为您不希望将测试代码部署到生产环境。对于单项目解决方案,一个测试项目可能就足够了。
在内部,测试项目可以以您认为方便的任何方式进行组织,只要它是一致的。 ASP.NET MVC测试项目可能有一个ControllerTests文件夹,每个控制器有一个测试.cs文件,在某种程度上镜像MVC项目结构。这使得测试易于查找并与他们正在测试的代码相关。
答案 1 :(得分:2)
您究竟如何组织单元测试?
我组织单元测试以反映我的项目结构。如果在我的ASP.NET MVC项目中,我有
这样的例子我的单元测试项目中有相同的文件夹。然后对于MVC项目中的每个文件,我都有相应的单元测试。以下是sample project structure I wrote的示例。
答案 2 :(得分:1)
我的格式通常是这样的:
MyMvcApp.Web (The Actual Web Application)
|- Controllers
|- ViewModels
|- Views
|- Framework (For specific override points in the MVC Framework)
MyMvcApp (The class library that contains my domain specific logic)
|- SomeFacet (Folder to contain entities, objects, etc)
|- Repositories
MyMvcApp.UnitTests (Test project)
|- SomeFacet (Contains tests for specified folder in class library)
MyMvcApp.IntegrationTests (Test project)
|- SomeFacet (Contains tests for specified folder in class library)
答案 3 :(得分:0)
首先要了解我们需要测试什么以及可用于此目的的设施更为重要。它基本上是您需要关注的应用程序中对象的行为。您有大量的测试框架可供选择,如NUnit等。随着您继续使用Test项目的结构。