【发布时间】:2013-10-15 07:41:25
【问题描述】:
我有一个 MVC 项目,其中一个控制器派生自以下结构中的两个基类:
Global Base Controller
|
|--------------------|
Type1 Type2
| |
|--------------------------------------|
Controller1/Controller2 Controller3/Controller4
我想设置我的单元测试,以便我只测试 controller1/2/3/4 中的任何被覆盖的方法,以便我坚持 DRY 原则。这意味着如果我将测试添加到 Global Base Controller 中,它们将被应用到更远的链条中。
使用 NUnit/msTest 实现这一目标的最佳方法是什么?
我已尝试按照以下示例对测试使用相同的结构,但未选择基本测试:
public class ControllerTestClass<T>
{
public class ForThisMethod
{
[Test]
public void WhenThisCondition_HasThisValue()
{
Assert.IsAssignableFrom<T>("");
}
}
}
public class UnitTest2 : ControllerTestClass<String>
{
[TestFixture]
public class ForThisMethod2
{
[Test]
public void WhenThisCondition_HasThisValue()
{
Assert.True(true);
}
}
}
通过上述结构,我在测试资源管理器中看到以下内容:
注意:我知道以这种方式进行测试需要新功能的开发人员添加额外的测试。这很好,将写入项目说明中。
【问题讨论】:
标签: c# unit-testing nunit mstest