Tao*_*Tao 5 c# unit-testing visual-studio
我需要对一个特定接口的两个实现类进行单元测试.单元测试类是通用的,涵盖了接口的所有必要测试.我想在测试单元类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
}
Run Code Online (Sandbox Code Playgroud)
对于这种模式,通常你会有一个带测试方法的基础测试类,然后你将它子类化并填写安装方法.所以它会变成这样:(我使用NUnit,所以如果测试框架方法稍微偏离,我会道歉)
// don't mark this one as TestClass!
public abstract class MyBaseFixture
{
protected ITest mockInstance;
[TestMethod]
public void Test1 ()
{
Assert(this.mockInstance.Func1() == 0);
}
}
[TestClass]
public class MyConcreteFixture : MyBaseFixture
{
[TestInitialize]
public void Setup()
{
this.mockInstance = new ConcreteInstance1();
}
}
[TestClass]
public class MyOtherConcreteFixture : MyBaseFixture
{
[TestInitialize]
public void Setup()
{
this.mockInstance = new ConcreteInstance2();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |