【发布时间】:2011-02-10 07:30:54
【问题描述】:
我正在尝试模拟/责任驱动设计。在对象需要服务来检索其他对象的情况下,我似乎无法避免从模拟返回模拟。
一个例子可以是检查上个月的账单是否已支付的对象。它需要一个检索账单列表的服务。所以我需要在我的测试中模拟那个 billRetrievalService 。同时我需要 BillRetrievalMock 返回模拟的 Bills(因为我不希望我的测试依赖于 Bill 实现的正确性)。
我的设计有缺陷吗?有没有更好的方法来测试这个?或者这是使用查找器对象时需要的方式(在这种情况下查找账单)?
旁注:尽管 Bill 可能是一个值对象候选者,但当集合不包含值对象(例如用户)时,更广泛的问题仍然存在。
【问题讨论】:
-
请注意,最后一个标签太长,因此被截断(并且还有一个错字)。
-
您是退回模拟账单还是只是存根?返回存根列表的服务对我来说似乎完全可以接受。
-
@Mathias 那些是模拟我的对象需要对它们进行(模拟)方法的结果。
标签: unit-testing tdd mocking