【发布时间】:2015-06-16 13:21:13
【问题描述】:
有人知道下面所示的 EasyMock 测试用例失败中的数字 5b40c281 和 78a1d1f4 是什么意思吗?
它们本质上是指向两个不同 PdlPrintJob 实例的指针吗?
有人知道为什么会发生这种故障吗?
在主代码中,PdlPrintJob 被构造(使用 new PdlPrintJob())并作为参数传递给方法 printer.executePrintJob()。
在测试用例中,PdlPrintJob 被构造(使用 new PdlPrintJob())并作为参数传递给 mockPrinter.executePrintJob()。
感谢您的建议,
最好的问候
詹姆斯
junit.framework.AssertionFailedError:
Unexpected method call executePrintJob(com.canon.cel.meap.jobs.PdlPrintJob@5b40c281, EasyMock for interface com.canon.meap.security.AccessControlToken):
executePrintJob(com.canon.cel.meap.jobs.PdlPrintJob@5b40c281, EasyMock for interface com.canon.meap.security.AccessControlToken): expected: 0, actual: 1
executePrintJob(com.canon.cel.meap.jobs.PdlPrintJob@78a1d1f4, EasyMock for interface com.canon.meap.security.AccessControlToken): expected: 1, actual: 0
【问题讨论】:
-
因为对象实例不相同,所以您没有将模拟对象作为参数发送,而是创建了一个新对象。只需检查一下。
-
你是否正确实现
PdlPrintJob.equals() -
我们可能还需要看到符合您期望的实际测试代码
标签: unit-testing junit easymock