Zom*_*ies 0 java unit-testing mocking
我有一个不返回值的方法。相反,它接受一个列表并修改该列表的成员。显然,列表本身是可变的,它的成员也是可变的。
EG:我想嘲笑这个:
void modifyRequests(List<MutableObject> requests);
Run Code Online (Sandbox Code Playgroud)
好吧,各种模拟框架确实提供了执行此操作的方法(在调用方法时执行使用参数的自定义操作) - 但我强烈考虑不使用模拟。除非您真的想验证被测类与其协作者之间的协议,否则您应该考虑编写一个假的而不是模拟的。然后,您可以使假冒的行为随您的喜好而变化 - 通常(IME)您最终会得到更简单的测试代码。
它并不总是合适的,并且嘲笑当然有它的一席之地 - 但随着时间的推移,我发现一个写得好的假货是有价值的,特别是当它是许多类使用的依赖项时。