【发布时间】:2013-08-02 16:42:27
【问题描述】:
有没有办法对多个对象运行一组相同的测试,但根据所述对象的类型切换每个测试?
即如果我有课
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)) }
}
我希望能够使用标志、类型检查或其他功能,以便我:
- 可以用
MyObj实例替换对SubObj1的引用, -
在编辑: 这部分可以通过SubObj1和SubObj2上运行Tests类,但如果使用SubObj2实例,则阻止Test1运行?Assert.Ignore完成。
(我的代码中的真实案例涉及三个不同的非结构化数据解析器,每个解析器都以不同的方式以简单性换取准确性。我有一个解析器的 400 个测试用例,并希望将它们移植到其他两个。创建三个几乎相同的测试用例集并修剪在每个类中不起作用的测试似乎是一个巨大的 DRY 失败。)
【问题讨论】:
标签: nunit