如何在 mockito 中模拟一个新对象

How to mock a new object in mockito

大家好,我目前正在编写 mockito 测试,我遇到了一些我无法模拟的东西,请参见下文:

SEOKey seoKey = new SEOKey(seoEntityId, SEOEntityType.valueOf(seoEntityType));

我认为 Mockito 不允许您模拟 new 方法。您需要做的是使用 PowerMockito whenNew 方法。

类似这样的事情(如果它很重要,请随意添加你的论点):

PowerMockito.whenNew(SEOKey.class).withNoArguments().thenReturn(seoKeyMock);

请记住将您尝试测试的 class 添加到带有 class 声明的 @PrepareForTest 注释中。这应该是针对您正在测试的 class,而不是您为其调用 new 方法的 class。

您可以

@Mock
private SEOKey key;

@Before
public void setup(){
MockitoAnnotations.initMocks(this);
}

然后成员被嘲笑。

另一种可能性是直接在测试方法中进行模拟:

SEOKey key = Mockito.mock(SEOKey.class);