gpt4 book ai didi

c# - 针对不同接口(interface)实现的 Visual Studio 单元测试

转载 作者:太空狗 更新时间:2023-10-29 22:28:45 24 4
gpt4 key购买 nike

我需要对一个特定接口(interface)的两个实现类进行单元测试。单元测试类是通用的,涵盖了接口(interface)的所有必要测试。我想在测试单元类 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

}

最佳答案

对于这种模式,通常您会有一个带有测试方法的基测试类,然后将其子类化并填充设置方法。所以它会变成这样:(我使用的是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();
}
}

关于c# - 针对不同接口(interface)实现的 Visual Studio 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4199605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com