2

在 ruby​​ on rails 中,可以在 yaml 文件中定义数据夹具,然后使用从这些夹具创建的对象(使用 activerecord 作为代理)加载它们以执行某些测试。

我想知道使用 Moq 和 NUnit 进行单元测试是否存在类似的东西。

目前,我手动初始化对象(例如在存储容器中定义一组现有对象)并依靠继承使对象可用于各种测试。它可以工作,但数据现在与断言代码混合在一起,我想拆分它。

4

1 回答 1

1

我也找不到任何 C# 夹具库。所以我想出了这个:https ://www.nuget.org/packages/ts.Datafixtures/

我用它对数据库/实体框架进行功能测试:每次运行测试时,数据库都是从头开始构建的,并带有测试用例所需的固定装置。固定装置是可重复使用的,并且可以依赖于其他固定装置。

该库可以在没有实体框架的情况下使用,但我不确定它是否对您的情况有意义。

Moq 使创建存根变得非常容易,但如果您发现自己到处重复相同的存根,只需提取公共代码即可。单元测试只是代码。拥有辅助函数、存根类、扩展或其他提供通用所需测试对象的工具是完全可以的。

我不熟悉 NUnit,但大多数单元测试框架都带有一些数据提供者的概念。将从 CSV 文件或类似文件中读取集合,并对每个条目运行测试。如果这符合您的要求,这也是一个不错的方法。

您可以将其与 Moq 结合使用 - 使用 CSV 中的标量值来检测您的存根对象。

希望这可以帮助...

于 2018-10-19T02:00:33.503 回答