【发布时间】:2015-03-01 19:27:47
【问题描述】:
我一直在为一个类编写测试,所有这些看起来都像这样:
expectedResult = ....;
exception = new ....;
mock.Setup(sameexpression).Throws(exception);
result = sameObject.SameMethodToTest();
Assert.AreEqual(expectedResult, result);
我想知道将这段代码(包括公共断言)提取到一个共享私有方法中是否会被认为是一种不好的风格,该方法将接收 expectedResult 和异常作为参数,从而减少代码重复和维护。
【问题讨论】:
-
对我来说,这听起来像是您在多种测试方法中断言相同的事情。但是你为什么还要多次测试同样的东西呢?
-
测试不同,每个测试的预期结果和异常都不同......我准备它在一个测试方法中循环多个值
-
这似乎是基于意见的,但是如果您查看一些复杂的测试(例如 C# 编译器),那么您会看到设置/测试代码已被抽象:@987654321 @
标签: c# unit-testing code-duplication