如何判断对象是否是 Mockito 模拟对象?
是否可以在代码中判断给定对象是否是 Mockito 模拟对象?
我想这样做的原因是,当使用模拟时返回不同的错误消息。这将用于向其他开发人员建议,他们应该使用预先准备好的模拟,该模拟已经设置为以有用的方式应答呼叫,而不是自己创建模拟。
目前我拥有的最好的是,但这感觉很笨拙。object.getClass().getName().contains("EnhancerByMockitoWithCGLIB")
是否可以在代码中判断给定对象是否是 Mockito 模拟对象?
我想这样做的原因是,当使用模拟时返回不同的错误消息。这将用于向其他开发人员建议,他们应该使用预先准备好的模拟,该模拟已经设置为以有用的方式应答呼叫,而不是自己创建模拟。
目前我拥有的最好的是,但这感觉很笨拙。object.getClass().getName().contains("EnhancerByMockitoWithCGLIB")
似乎没有这样的API(请提出一个问题,它应该是!幸运的是(按照您在下面的评论),包中有一种方法:org.mockito.internal.util
import org.mockito.internal.util.MockUtil;
new MockUtil().isMock(obj)
将来的方法可能会添加到公共 API 中,请参阅:问题 313:在 org.mockito.internal 外部提供 isMock)。Mockito.isMock()
作为后续,Mockito公共API现在有这种方法:
MockingDetails org.mockito.Mockito.mockingDetails(Object toInspect)
这是@David华莱士提出的问题的结果。返回的对象支持这些方法以及提供其他模拟信息的其他一些方法。isMock()
isSpy()