【问题标题】:Data fixtures for Unit Testing in .NET.NET 中单元测试的数据夹具
【发布时间】:2013-02-15 15:17:49
【问题描述】:

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

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

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

【问题讨论】:

  • 您需要一些数据还是需要特定数据?
  • 嗯,我有可以重复使用的测试数据。我想用一种方式说:“这是数据,为我建立一个这种类型的集合。”
  • 你能在 ruby​​ 中发布一个例子吗?也许那时我有一个“啊”的时刻

标签: .net unit-testing nunit moq


【解决方案1】:

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

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

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

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

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

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

希望这会有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多