java.lang.IllegalStateException:不兼容的返回值类型

时间:2011-03-11 06:57:28

标签: java unit-testing java-ee easymock

我正在使用EasyMock在测试用例中创建模拟类。

expect(entity.getType()).andReturn("string");

Type属于String数据类型。在我的开发环境中它运行良好。但是,如果我转移到我的服务器并进行构建,它会失败并出现以下错误:

java.lang.IllegalStateException: incompatible return value type

我不知道为什么它在服务器中失败并在我的开发机器中执行。

开发EasyMock版本:2.5.2

4 个答案:

答案 0 :(得分:14)

我遇到了同样的问题。

我在EasyMock中进行了部分模拟,但忘了给addMockedMethod打电话给我想要设定期望的方法。

错误信息与上述相同,我认为这有点误导。

答案 1 :(得分:8)

在我的情况下,方法是final,我打电话给expect。所以EasyMock无法模拟方法,因此没有记录方法调用。

答案 2 :(得分:5)

确保您的entity对象不是简单的POJO(例如new Entity()),并且它是使用EasyMock的createMock()方法创建的。

答案 3 :(得分:3)

对于我来说,我必须记得在使用过一次之后再调用reset(...),或者我(奇怪地)得到了第二次调用expect的错误消息。