模拟java对象会产生类强制转换异常

时间:2015-07-08 01:58:35

标签: java spring junit mockito powermockito

我有一个接口fly和一个实现duck的类fly

interface Fly {
  getWingSize();   
}

public class Duck implements Fly {
  @Override
  int getWingSize(){
    return 1;
  }
}

在我的控制器类中,当我尝试使用以下内容时:

Fly flyAnimal = Animal.getFlyingAnimal();
((Duck) flyAnimal).getWingSize();

它工作正常,但在我的junit中,它给出了一个类强制转换异常。我正在使用powermockito。

1 个答案:

答案 0 :(得分:1)

在您的代码中,您将转换为具体类(duck)。通常,您会模拟接口。您的测试用例可能已经模拟了界面飞行。

如果将((duck) fly).getWingSize();替换为fly.getWingSize();

,它应该可以正常工作