gpt4 book ai didi

c# - 使用 Xunit 测试多个派生类型的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 22:25:24 24 4
gpt4 key购买 nike

我有一个接口(interface) IFoo

public interface IFoo
{
void DoSomeStuff();
}

我有两个派生类型 FooImpl1FooImpl2:

public class FooImpl1 : IFoo
{
public void DoSomeStuff()
{
//...
}
}

public class FooImpl2 : IFoo
{
public void DoSomeStuff()
{
//Should do EXACTLY the same job as FooImpl1.DoSomeStuff()
}
}

我有一个测试类,用于测试 FooImpl1IFoo 契约:

    private static IFoo FooFactory()
{
return new FooImpl1();
}

[Fact]
public void TestDoSomeStuff()
{
IFoo foo = FooFactory();

//Assertions.
}

如何重用这个测试类来测试 FooImpl1FooImpl2

最佳答案

IFoo 测试的基类使用抽象方法返回适当的实现怎么样?

public abstract class FooTestsBase
{
protected abstract IFoo GetTestedInstance();

[Fact]
public void TestDoSomeStuff()
{
var testedInstance = GetTestedInstance();
// ...
}
}

现在,所有派生类型只需提供一个实例即可:

public class FooImpl1Tests : FooTestsBase
{
protected override IFoo GetTestedInstance()
{
return new FooImpl1();
}
}

关于c# - 使用 Xunit 测试多个派生类型的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12338962/

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