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

x6h2sr28  于 2023-01-24  发布在  Java
关注(0)|答案(5)|浏览(170)

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

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

类型属于String数据类型。在我的开发环境中,它工作正常。但如果我转移到我的服务器并进行构建,它将失败,并出现以下错误:

java.lang.IllegalStateException: incompatible return value type

我不知道为什么它在服务器上失败,而在我的开发机器上执行。
开发EasyMock版本:2.5.2

wooyq4lh

wooyq4lh1#

我也有同样的问题。
我在EasyMock中有一个部分mock,但是忘记为我想要设置期望值的方法调用addMockedMethod
错误信息和上面的一样,我得说这有点误导。

jtjikinw

jtjikinw2#

在我的例子中,方法是final,我在该方法上调用了expect,因此EasyMock无法模拟该方法,因此没有记录方法调用。

gwo2fgha

gwo2fgha3#

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

w8f9ii69

w8f9ii694#

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

yhxst69z

yhxst69z5#

如果有人在尝试模拟一个类的toString()方法的行为时遇到这个错误,例如expect(entity.toString()).andReturn("string");,EasyMock将在测试中调用该行的toString()方法的特殊版本,并且不会修改测试代码中该方法的预期行为。()行为,如果您只是删除尝试模拟调用的行,您的测试仍然可能通过。PowerMock似乎没有提供任何解决方案,因为它的@PrepareForTest没有改变这种行为。

相关问题