我正在寻找一种在 .NET 项目中组织单元测试的好方法。现在,我TestClass每个应用程序类都有一个,每种方法都有多个测试。尽管我习惯按其测试的应用程序类方法对TestCategory每个方法进行分类TestMethod,但查找我的测试方法变得很笨拙。
我正在考虑将我的测试类拆分为部分类 - 每个应用程序类方法一个部分类。这意味着我可以TestMethod在每个方法中拥有多个合二为一的专用文件,而无需在一个大文件中寻找它们。
这种方法有什么陷阱吗?在 .NET 和 Visual Studio 中是否有更好的方法来处理大型测试类?
编辑:我正在使用 IoC(我们在测试之外使用 Castle.Windsor 进行 DI),并且我们使用 Moq 进行模拟功能。测试用 初始化TestInitialize。
看看我的答案C# ASP.NET MVC Controller 单元测试。其要点是:
此设置的另一个好处是,如果您使用 resharper 单元测试会话能够轻松找到您的测试,它会为您提供一个很好的测试树。
对于第一个答案,您不应该在测试中使用 DI 框架。所有外部依赖项都应该被模拟/伪造,以便您只测试被测系统。
以及使用部分类。请参阅C# 的部分类设计不好吗?
我同意卡拉的观点,仅仅使用部分类来分割长类被认为是糟糕的设计。如果你的班级这么大,也许需要拆散。