[英]What is the best way to test multiple derived types using Xunit?
我有一個接口IFoo
public interface IFoo
{
void DoSomeStuff();
}
我有兩個派生類型FooImpl1
和FooImpl2
:
public class FooImpl1 : IFoo
{
public void DoSomeStuff()
{
//...
}
}
public class FooImpl2 : IFoo
{
public void DoSomeStuff()
{
//Should do EXACTLY the same job as FooImpl1.DoSomeStuff()
}
}
我有一個測試類,用於測試FooImpl1
IFoo
合同:
private static IFoo FooFactory()
{
return new FooImpl1();
}
[Fact]
public void TestDoSomeStuff()
{
IFoo foo = FooFactory();
//Assertions.
}
我如何重用這個測試類來測試FooImpl1
和FooImpl2
?
具有返回適當實現的抽象方法的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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.