强制转换模拟对象会抛出ClassCastException

时间:2013-10-29 15:26:11

标签: junit junit4 easymock powermock

我有一个在单元测试时使用powermock模拟的对象。

ClassA mockedClassA = PowerMock.createMock(ClassA.class);

稍后在mycode中我正在使用该对象与演员。生活如下。

String hello = ((ClassB)classA).someMethod();

Junit测试在该地点发生异常后抛出。

java.lang.ClassCastException: $Proxy15 incompatible with ClassB

看起来像是无法投射模拟对象。那我怎么能经历这个呢?

我试过跟随你。

Easymock.expect((ClassB的)mockedClassA.somemethod())...

不起作用。

1 个答案:

答案 0 :(得分:2)

您的代码期望classA是ClassB对象,但它不是(除非ClassA扩展ClassB,但是您不需要转换)。你试过吗

ClassA mockedClassA = PowerMock.createMock(ClassB.class)