有没有办法在多个对象上运行一组相同的测试,但根据所述对象的类型切换每个测试?
即如果我有课
abstract class MyObj{ abstract bool DoWork(bool isTrue); }
class SubObj1 : MyObj{ override bool DoWork(bool IsTrue){return IsTrue; } }
class SubObj2 : MyObj{ override bool DoWork(bool IsTrue){return false; } }
和测试
class Tests
{
[Test]
void Test1() { Assert.IsTrue(new SubObj1().DoWork(true)) }
[Test]
void Test2() { Assert.IsTrue(new SubObj1().DoWork(false)) }
}
我希望能够使用标志、类型检查或其他东西,以便我:
- 可以用实例替换对的
SubObj1
引用MyObj
, 编辑:这部分可以用Tests
在SubObj1
and上运行类,但如果使用实例则SubObj2
阻止Test1
运行?SubObj2
Assert.Ignore
.
(我的代码中的真实案例涉及三个不同的非结构化数据解析器,每个解析器都以不同的方式以简单性换取准确性。我有一个解析器的 400 个测试用例,并希望将它们移植到其他两个。几乎创建了三个相同的测试用例集并修剪在每个类中不起作用的测试似乎是一个巨大的 DRY 失败。)