如何以单元测试框架不可知的方式进行单元测试断言

时间:2016-03-28 15:31:59

标签: c# unit-testing nunit mstest xunit

我目前正在使用一个家庭旋转单元测试帮助程序包,该程序包由几个内部项目使用。直到最近,这个解决方案一直很适合我们,并帮助我们遵循DRY原则来进行常见的测试辅助方法。不幸的是,这个项目目前与nUniut绑定,我们刚刚继承了一些可以从这个帮助程序中受益的xUnit测试项目。这成为一个问题,因为每个测试框架似乎都会管理断言并监视不同的抛出异常以指示测试失败。

我希望它只是从基类异常类继承的问题,并且大多数单元测试框架只会适当地捕获并处理它作为失败(或传递)的断言。然而,情况似乎并非如此。

是否存在Assert / throw Assertion异常的正确方法,而没有可能由相应测试运行器使用的直接单元测试框架依赖性?或者是否必须为每个单元测试框架创建自定义适配器,以便我的帮助程序类不受测试项目单元测试框架的这种直接依赖性的影响?

1 个答案:

答案 0 :(得分:0)

您必须创建一个接口,并在每个框架的单独适配器中实现它。结果特征集将是您支持的所有框架的最小公分母。

我想这只会让那些真正的新手感到满意。这意味着您无法利用先进的生产力增强功能,这些功能以不兼容的形式存在于NUnit和xUnit中。

你必须问自己一致性是否真的有价值。