出现Mockito问题后怎么处理

来源:爱站网时间:2021-12-15编辑:网友分享
本篇文章将简单描述下关于测试Mockito出现问题后该用什么解决方案,想必很多小伙伴都迫切想知道吧,事不宜迟,随爱站技术频道小编一起了解下。

问题描述


假设我在某些服务类中有以下方法:

public SomeEntity makeSthWithEntity(someArgs){
    SomeEntity entity = new SomeEntity();
    /**
     * here goes some logic concerning the entity
     */
    return repository.merge(entity);
}

我想测试此方法的行为,因此想以以下方式模拟repository.merge

when(repository.merge(any(SomeEntity.class))).thenReturn(objectPassedAsArgument);

然后模拟的存储库返回了makesSthWithEntity传递给它的内容,我可以轻松对其进行测试。

任何想法我如何强制模仿返回objectPassedAsArgument

解决方法:


您可以实现Answer,然后改为使用thenAnswer()

类似于:

when(mock.someMethod(anyString())).thenAnswer(new Answer() {
    Object answer(InvocationOnMock invocation) {
        return invocation.getArguments()[0];
    }
});

当然,一旦有了这个,您就可以将答案重构为可重用的答案,称为ReturnFirstArgument或类似名称。

有关于Mockito返回与传递给方法相同的对象的测试是不是都了解清楚了,如果还有什么编程上面的问题,可以随时来我们爱站技术频道了解。

上一篇:hystrix与SOAP原来可以这样处理

下一篇:Java编程中哪里可以寻找Docker映像

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载