我有以下测试,它在 IDE 中执行时可以成功运行,但是当我执行 mvn install 时,它会失败并显示下面的 msg
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
下面是测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = SpringockitoContextLoader.class,locations={"classpath:conf/test-context.xml"})
public class ServiceTest
{
@ReplaceWithMock
@Autowired
private Object1 object1
@Autowired
private Service service;
@Before
public void setup()
{
MockitoAnnotations.initMocks(this);
}
@Test
public void test()
{//below line is failing while doing mvn install
String validateMe="1234"
Mockito.when(object1.validate(validateMe)).thenReturn(true)
}
}
我是否需要任何其他额外的配置才能让它在 maven 中工作?
更新 在 IDE 和 maven 的结果行为之间进行了进一步分析。我在测试方法中添加了下面的代码,发现从 IDE 运行时 object1 以模拟形式出现并返回 true,但从 maven 测试运行时打印为 false。知道为什么会发生这种情况
new MockUtil().isMock(object1)