我有一组用于测试接口的多个实现的基本测试。我对此建模的方法是创建一个带有 [Ignore] 属性的基本文本装置。
[TestFixture]
[Ignore]
public class BaseTests
{
// Use your imagination for the actual name
public virtual ITestableThing GetConcrete()
{
return null;
}
// All of my unit tests here
}
然后我为每个接口实现写一个子类:
public class ConcreteThingTests : BaseTests
{
public override ITestableThing GetConcrete()
{
return new ConcreteThing();
}
}
这很好用,因为我将所有实现的所有测试都放在一个地方,并且子类只指定实现。
问题是我必须将 [Ignore] 属性放在基类上,否则 NUnit 将尝试运行测试(并失败)。
正因为如此,我的测试结果总是被一组 Ignored 测试弄得乱七八糟,虽然这没什么大不了的,但我认为可能有一个更好的模式来避免忽略测试。
那么,我是否实现了测试夹具继承错误?