在进行mvn安装时模拟测试失败

时间:2015-01-28 17:29:02

标签: testing junit mockito spring-test springockito

我有下面的测试,它在IDE中执行时成功运行,但是当我执行mvn安装时,它失败并显示以下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对象1运行时是模拟并且返回true但是从maven测试运行时它打印为false。 知道为什么会发生这种情况

new MockUtil().isMock(object1)

1 个答案:

答案 0 :(得分:0)

我发现如果我用等价的xml模拟配置注释掉@ReplaceByMock,它在maven和IDE.Strange中都有效!等价的xml如下:

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

<强>更新 我正在将代码从分支合并到主干,并再次考虑使用来自主干的注释。我很惊讶地看到它正在工作。可能在我的分支中有一些问题引起了这个问题。

相关问题