我正在尝试为我的方法创建一个JUnit测试。我有办法
public a(int a, int b){
a.setA(12);
Injec inj = new Injec();
inj.check();
return (a*b);
}
我想跳过此部分,因为它使用HTTP请求
Injec inj = new Injec();
inj.check();
我在用
when(Matchers.<Injec> anyObject().check()).thenReturn(null);
但这给了我例外
最佳答案
使用Mockito,您将无法使用当前代码执行该操作。
问题在于方法a
直接通过调用默认构造函数来创建一个新的Injec
对象。 Mockito无法模拟该新实例,因为它无法对其进行任何控制。
因此,您需要重构代码。有两种可能的解决方案:
将Injec
实例作为参数传递给a
方法。这样,您可以模拟实例并将模拟提供给方法。
将Injec
实例注入到您的类中(例如,使用构造函数注入)。
如果您使用的是JMockit(如@Rogério所述),则可以这样做,您只需将@Mocked Injec
添加到测试类中,并且Injec
实例在创建时将被模拟。