我正在写一个存储库。获取对象是通过 DAO 完成的。创建和更新对象是通过一个 Request 对象完成的,该对象被赋予一个 RequestHandler 对象(一个命令模式)。我没有编写 DAO、Request 或 RequestHandler,所以我无法修改它们。
我正在尝试为此存储库编写测试。我已经模拟了 DAO 和 RequestHandler。我的目标是让模拟的 RequestHandler 简单地将新的或更新的对象添加到模拟的 DAO。这将产生我正在与数据库交谈的错觉。这样,我不必为调用此存储库的所有类模拟存储库。
问题是 Request 对象是这个字符串 blob 和各种字母数字代码的 gob。我很确定 XML 也参与其中。这有点乱。另一位开发人员正在编写代码以根据所存储的对象创建 Request 对象。而且由于 RequestHandler 接收请求而不是我存储的对象,因此它无法更新模拟的 DAO。
所以问题是:我是否也要模拟请求,还是应该等到其他人,他有点慢,在我编写测试之前完成他的代码?或者在测试调用存储库的类时搞砸并模拟整个存储库?
顺便说一句,我说的“模拟”不是 NMock 意义上的,而是像用内存中的集合来伪造数据库一样。