代码之家  ›  专栏  ›  技术社区  ›  Mayo

单元测试-动态/相关存储库的挑战

  •  0
  • Mayo  · 技术社区  · 15 年前

    我有几个控制器,每个控制器都有一个带有单元测试的测试类。每个单元测试调用一个操作并验证该操作是否处理给定的场景。

    测试类有一个设置例程,该例程实例化了许多伪存储库和其他伪对象。假存储库具有存储库方法/函数操作所针对的静态集合。

    它运行得很好,但我遇到了一些挑战:

    • 当一个伪集合中的实体引用另一个伪集合中的实体时,存储库构造函数中的代码会爆炸,并变得难以管理

    因此,我有两个问题可能需要您解释一下您的一般方法:

    1. 您的假存储库是否支持更新/插入/删除操作?如果是,如何防止一个单元测试的更改影响另一个单元测试?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Darin Dimitrov    15 年前

    只要您的存储库是用接口抽象的,您就可以使用一个模拟对象框架来生成一个假的存储库,并将其注入正在测试的控制器中。以下是一些流行的选择:

        2
  •  1
  •   Ahmad    15 年前

    Setup 函数,并使用 TearDown 在每次测试后重置存储库的状态。

    (这些是NUnit特有的属性,所以我不能评论其他框架是否有类似的特性)。