在 ruby on rails 中,可以在 yaml 文件中定义数据夹具,然后使用从这些夹具创建的对象(使用 activerecord 作为代理)加载它们以执行某些测试。
我想知道使用 Moq 和 NUnit 进行单元测试是否存在类似的东西。
目前,我手动初始化对象(例如在存储容器中定义一组现有对象)并依靠继承使对象可用于各种测试。它可以工作,但数据现在与断言代码混合在一起,我想拆分它。
在 ruby on rails 中,可以在 yaml 文件中定义数据夹具,然后使用从这些夹具创建的对象(使用 activerecord 作为代理)加载它们以执行某些测试。
我想知道使用 Moq 和 NUnit 进行单元测试是否存在类似的东西。
目前,我手动初始化对象(例如在存储容器中定义一组现有对象)并依靠继承使对象可用于各种测试。它可以工作,但数据现在与断言代码混合在一起,我想拆分它。
我也找不到任何 C# 夹具库。所以我想出了这个:https ://www.nuget.org/packages/ts.Datafixtures/
我用它对数据库/实体框架进行功能测试:每次运行测试时,数据库都是从头开始构建的,并带有测试用例所需的固定装置。固定装置是可重复使用的,并且可以依赖于其他固定装置。
该库可以在没有实体框架的情况下使用,但我不确定它是否对您的情况有意义。
Moq 使创建存根变得非常容易,但如果您发现自己到处重复相同的存根,只需提取公共代码即可。单元测试只是代码。拥有辅助函数、存根类、扩展或其他提供通用所需测试对象的工具是完全可以的。
我不熟悉 NUnit,但大多数单元测试框架都带有一些数据提供者的概念。将从 CSV 文件或类似文件中读取集合,并对每个条目运行测试。如果这符合您的要求,这也是一个不错的方法。
您可以将其与 Moq 结合使用 - 使用 CSV 中的标量值来检测您的存根对象。
希望这可以帮助...