gpt4 book ai didi

java - 调用 EasyMock.expect() 时调用通过 EasyMock 和 Powermock 模拟的静态方法

转载 作者:太空宇宙 更新时间:2023-11-04 15:15:14 27 4
gpt4 key购买 nike

我正在使用 TestNG、EasyMock 和 PowerMock 进行测试。根据下面的代码,我尝试模拟从被测静态方法(fetchAuthenticator)调用的静态方法。当我运行测试时,executeHttpGet 方法在调用 EasyMock.expect 时被执行。

@PrepareForTest(Metadata.class)
public class MetadataTest extends PowerMockTestCase {
@Test
public void testPatience(){
PowerMock.mockStatic(HttpHelper.class);
EasyMock.expect(
HttpHelper.executeHttpGet(EasyMock.anyString()))
.andReturn(
"{\"response\":\"some_value\"}");
PowerMock.replay(HttpHelper.class);

String response = Whitebox.invokeMethod(Metadata.class,
"fetchAuthenticator",
"something-else",
"somesite.com", "another-value");
assertNotNull(response);
}
}

我发现了类似的问题,但没有答案。 EasyMock: Actual function gets called while passing as an argument to EasyMock.expect

最佳答案

您忘记包括:

@RunWith(PowerMockRunner.class)

在测试用例的类级别

并替换

@PrepareForTest(Metadata.class)

@PrepareForTest({ AuthenticationMetadata.class, HttpHelper.class })

关于java - 调用 EasyMock.expect() 时调用通过 EasyMock 和 Powermock 模拟的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920478/

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