【问题标题】:Cast a mocked object throws ClassCastException铸造一个模拟对象会抛出 ClassCastException
【发布时间】:2013-10-29 15:26:11
【问题描述】:

我有一个在单元测试时使用 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())...;

没用。

【问题讨论】:

    标签: junit junit4 easymock powermock


    【解决方案1】:

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

    ClassA mockedClassA = PowerMock.createMock(ClassB.class)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 2018-04-29
      • 2013-08-07
      • 2015-05-21
      • 1970-01-01
      相关资源
      最近更新 更多