gpt4 book ai didi

java - Mockito thenReturn 返回相同的实例

转载 作者:IT老高 更新时间:2023-10-28 20:43:24 28 4
gpt4 key购买 nike

我在 Mockito 中有这个:

when(mockedMergeContext.createNewEntityOfType(IService.class)).thenReturn(new ServiceMock());

createNewEntityOfType 方法应该总是返回一个新的 ServiceMock 实例,但它会返回两次相同的引用。

为什么 thenReturn 方法没有返回新的 ServiceMock

最佳答案

thenReturn 方法将始终返回传递给它的内容。 new Servicemock() 代码在调用 thenReturn 之前被执行。然后将创建的 ServiceMock 传递给 thenReturn。因此 thenReturn 具有 ServiceMock 的绝对实例,而不是创建机制。

如果您需要提供新实例,请使用 thenAnswer

when(mockedMergeContext.createNewEntityOfType(IService.class))
.thenAnswer(new Answer<IService>() {
public IService answer(InvocationOnMock invocation) {
return new ServiceMock();
}
});

关于java - Mockito thenReturn 返回相同的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8227405/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com