How we can get ride of the object using mockito
我正在尝试为我的方法创建JUnit测试。我有一个方法
1 2 3 4 5 6 | public a(int a, int b){ a.setA(12); Injec inj = new Injec(); inj.check(); return (a*b); } |
我想跳过此节,因为它使用HTTP请求
1 2 | Injec inj = new Injec(); inj.check(); |
我正在使用
1 | when(Matchers.<Injec> anyObject().check()).thenReturn(null); |
但它给了我例外
使用mockito,您将无法使用当前代码执行此操作。
问题是方法
因此,您需要重构代码。有几种可能的解决方案:
- 将
Injec 实例作为参数传递给a 方法。这样,您就可以模拟实例并对方法进行模拟。 - 将
Injec 实例注入到类中(例如,使用构造函数注入)。
如果您使用jmockit,正如@rog_rio所指出的那样,这是可能的,您只需要将
使用jmockit可以模拟您的
1 2 3 4 5 6 7 8 9 10 11 12 | @RunWith(JMockit.class) public class MyTest { private ClassToTest underTest; @Test public void testA(@Mocked Injec injec) { underTest.a(10, 20); // your assertions } } |