如何在 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);
大家好,我目前正在编写 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);