【发布时间】:2010-03-20 19:07:22
【问题描述】:
我最近开始在我的测试中使用模拟对象,但我仍然对它们非常缺乏经验,并且不确定在某些情况下如何使用它们。目前,我正在努力解决如何模拟方法间依赖关系(调用方法 A 会影响方法 B 的结果),以及是否应该对其进行模拟(在使用模拟框架的意义上)?
以 Java 迭代器为例?模拟 next() 调用以返回正确的值很容易,但是如何模拟 hasNext(),这取决于调用了多少次 next()?目前我正在使用 List.Iterator,因为我找不到正确模拟的方法。
Martin Fowler 对 mock 和 stub 的区分在这里起作用了吗?我应该编写自己的 IteratorMock 吗?
还请考虑以下示例。要测试的方法调用 mockObject.setX() 和之后的 mockObject.getX()。有什么方法可以创建这样一个模拟(无需自己编写),它允许 getX 的返回值取决于传递给 setX 的内容?
【问题讨论】:
标签: java unit-testing mocking