是否可以在代码中判断给定的对象是否是Mockito mock?我这样做的原因是,当使用mock时,返回一个不同的错误消息。这将用于建议其他开发人员,他们应该使用一个预先准备好的mock,该mock已经设置为以一种有用的方式应答调用,而不是自己创建mock。目前我最好的是object.getClass().getName().contains("EnhancerByMockitoWithCGLIB"),但这感觉很古怪。
object.getClass().getName().contains("EnhancerByMockitoWithCGLIB")
svmlkihl1#
作为后续,Mockito公共API现在有这个方法:
MockingDetails org.mockito.Mockito.mockingDetails(Object toInspect)
这是@大卫Wallace提出的问题的结果。返回的对象支持方法isMock()和isSpy()沿着其他一些提供额外模拟信息的方法。
isMock()
isSpy()
import static org.mockito.Mockito.mockingDetails; assertThat(mockingDetails(probablyAMockedObject).isMock()).isTrue();
nnt7mjpx2#
看起来没有这样的API(请提出一个问题,它应该是!)幸运的是(按照你下面的评论)在org.mockito.internal.util包中有一个方法:
org.mockito.internal.util
import org.mockito.internal.util.MockUtil; new MockUtil().isMock(obj)
将来Mockito.isMock()方法可能会被添加到公共API中,请参阅:Issue 313: Provide isMock outside of org.mockito.internal)。
Mockito.isMock()
p5fdfcr13#
如果你使用的是io.mockk.mockk,那么你可以:
isMockKMock()
3条答案
按热度按时间svmlkihl1#
作为后续,Mockito公共API现在有这个方法:
这是@大卫Wallace提出的问题的结果。返回的对象支持方法
isMock()
和isSpy()
沿着其他一些提供额外模拟信息的方法。示例:
nnt7mjpx2#
看起来没有这样的API(请提出一个问题,它应该是!)幸运的是(按照你下面的评论)在
org.mockito.internal.util
包中有一个方法:将来
Mockito.isMock()
方法可能会被添加到公共API中,请参阅:Issue 313: Provide isMock outside of org.mockito.internal)。p5fdfcr13#
如果你使用的是io.mockk.mockk,那么你可以: