执行 MVN 安装时模拟测试失败



>我有以下测试,它在 IDE 中执行时可以成功工作,但是当我执行 mvn 安装时,它失败并显示以下消息

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 运行时,对象 1 作为模拟出现并返回 true,但在从 maven test 运行时,它打印为 false。知道为什么这会令人讨厌

new MockUtil().isMock(object1)

我发现如果我用等同的xml模拟配置注释掉@ReplaceByMock,它既适用于maven,也适用于IDE。奇怪!!等效的 XML 如下所示:

<mockito:mock id="object1" class="org.fs.service.validation.Object1" />

更新我正在将代码从分支合并到主干,并再次想到使用主干中的注释运行。我很惊讶地看到它有效。可能我的分支中有一些问题导致了这个问题。

相关内容

  • 没有找到相关文章

最新更新