【发布时间】:2016-05-18 14:14:27
【问题描述】:
我正在寻找一种在 .NET 项目中组织单元测试的好方法。现在,每个应用程序类都有一个TestClass,每种方法都有多个测试。虽然我使用TestCategory 来根据它测试的应用程序类方法对每个TestMethod 进行分类,但发现我的测试方法变得很笨拙。
我正在考虑将我的测试类拆分为部分类 - 每个应用程序类方法一个部分类。这意味着我可以在每个方法的一个专用文件中拥有多个 TestMethod,而无需在大文件中寻找它们。
这种方法有什么缺陷吗?在 .NET 和 Visual Studio 中处理大型测试类是否有更好的方法?
编辑:我正在使用 IoC(我们在测试之外使用 Castle.Windsor 进行 DI)并且我们使用 Moq 来模拟功能。使用TestInitialize 初始化测试。
【问题讨论】:
-
您可以为每个方法创建一个测试类。例如,您有一个类
C1,其方法为M1和M2。创建 2 个测试类,C1_M1_Test和C1_M2_Test。 -
考虑将您的测试类拆分为多个较小的类,而不是拆分您的测试。
-
@Carra No...一个方法可能有多个测试。如果一个类有 3 个方法,每个方法有 6 个测试……那就是一个测试类中有 18 个测试。更改应用程序类并不能真正解决问题 - 它正在解决等式错误一侧的增长规模。
-
@Carra 老实说......我意识到,正如你所做的那样,可伸缩性不是根本问题。事实上,我们必须担心函数中的控制流。一个函数可能会根据其输入抛出三种不同的异常。它可能返回一个空对象或一个非空对象。我讨厌驳回您的评论,因为您实际上并没有错……如果没有联合类型、不可变对象和引用透明方法,很难将其中一些问题分开。这是可行的,但可能不值得我和我的团队付出代价。
标签: c# .net visual-studio