【发布时间】:2010-11-16 22:17:09
【问题描述】:
我需要对一个特定接口的两个实现类进行单元测试。单元测试类是通用的,涵盖了接口的所有必要测试。我想在测试单元类 TestInitialize 方法中实例化实现类。
有什么办法可以强制测试类使用不同的实现类实例运行两次。
[TestClass]
public class MyFixture
{
[TestInitialize()]
public void MyTestInitialize()
{
ITest mockInstance = new TestImplement1();
//ITest mockInstance = new TestImplement2();
}
[TestMethod]
public void Test1 ()
{
mockInstance.Func1();
...
}
[TestMethod]
public void Test2 ()
{
...
}
...other unit tests
}
【问题讨论】:
-
必须测试这样的东西表明您的设计存在问题。被测代码不应该关心接口的具体实现者实际存在;如果是这样,你的界面违反了 LSP。
-
或者表示他想要一种方便的方法来测试一个接口的多个实现。
标签: c# visual-studio unit-testing