我如何判断一个对象是否是Mockito mock



是否可以在代码中判断给定对象是否是Mockito mock?

我想这样做的原因是在使用mock时返回不同的错误消息。这将用于向其他开发人员建议,他们应该使用预先准备好的mock,该mock已经设置为以有用的方式回答调用,而不是自己创建mock。

目前,我拥有的最好的是object.getClass().getName().contains("EnhancerByMockitoWithCGLIB"),但这感觉很糟糕。

作为后续,Mockito公共API现在有了这个方法:

MockingDetails org.mockito.Mockito.mockingDetails(Object toInspect)

这是@David Wallace提出的问题的结果。返回的对象支持方法isMock()isSpy(),以及其他一些提供附加嘲讽信息的方法。

示例:

import static org.mockito.Mockito.mockingDetails; 
assertThat(mockingDetails(probablyAMockedObject).isMock()).isTrue();

看起来没有这样的API(请提出问题,应该是!)幸运的是(根据您下面的评论)org.mockito.internal.util包中有一个方法:

import org.mockito.internal.util.MockUtil;
new MockUtil().isMock(obj)

未来Mockito.isMock()方法可能会添加到公共API中,请参阅:Issue 313:在org.mockito.internal外部提供isMock。

相关内容

  • 没有找到相关文章

最新更新