1

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

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

稍后在 mycode 中,我将该对象与演员一起使用。生活随之而来。

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

Junit 测试在该位置引发以下异常。

java.lang.ClassCastException: $Proxy15 incompatible with ClassB

看起来无法投射模拟对象。那么我该如何度过呢?

我试着跟随thigs。

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

不起作用。

4

1 回答 1

2

您的代码期望 classA 是 ClassB 对象,但事实并非如此(除非 ClassA 扩展 ClassB,但您不需要强制转换)。你有没有尝试过

ClassA mockedClassA = PowerMock.createMock(ClassB.class)
于 2013-10-29T15:32:35.460 回答