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

我应该嘲笑哪一个物体?

  •  0
  • moffdub  · 技术社区  · 16 年前

    repository . 获取对象是通过DAO完成的。创建和更新对象是通过一个请求对象来完成的,该请求对象被赋予一个RequestHandler对象(la) Command pattern ). 我没有编写DAO、请求或请求处理程序,因此无法修改它们。

    我正在尝试为此存储库编写测试。我已经模拟出了DAO和RequestHandler。我的目标是让模拟的RequestHandler简单地将新的或更新的对象添加到模拟的DAO中。这会让人产生一种错觉,以为我在和DB说话。这样,我就不必为调用此存储库的所有类模拟存储库。

    问题是,请求对象就是这堆字符串和各种字母数字代码。我很肯定XML也牵涉其中。有点乱。另一个开发人员正在编写代码,根据存储的对象创建请求对象。由于RequestHandler接收的是请求,而不是我存储的对象,因此它无法更新模拟的DAO。

    所以问题是:我是否也要模拟这个请求,还是应该等到另一个有点慢的家伙完成他的代码后再编写测试?或者在测试调用存储库的类时模拟整个存储库?

    顺便说一句,我说的“mock”不是NMock的意思,而是用内存中的集合来假装DB。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Hamish Smith    16 年前

    为了测试存储库,我建议您对所有较低层的对象使用testdoubles。

    为了测试依赖于存储库的类,我建议您对存储库使用testdouble。

    如果您正在创建DAO的实现,那么使用内存中的集合在功能上替换演示或测试系统中的数据库,这与上层的单元测试不同。我也做过类似的工作,这样我就可以给人们提供原型,并专注于业务对象,而不是物理模型。但这不是单元测试。

        2
  •  0
  •   Cyril Gandon niktrs    14 年前

    您可能没有创建web应用程序,但您可以看看使用存储库的NerdDinner应用程序。这是一个免费的PDF,解释了如何使用ASP.NET MVC创建应用程序,可以在以下位置找到: Professional ASP.NET MVC 2.0

    推荐文章