我有一个 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);
}
}
}
使用上述结构,我在测试资源管理器中看到以下内容:
注意:我知道以这种方式进行测试将需要新功能的开发人员添加额外的测试。这很好,将写入项目说明中。