gpt4 book ai didi

java - 如何在 JUnit 测试中抛出 UnsupportedEncodingException?

转载 作者:行者123 更新时间:2023-12-02 09:15:26 25 4
gpt4 key购买 nike

我的实现如下:

public String encodeString(String testString) {

try {
return URLEncoder.encode(testString, "UTF-8");
} catch (UnsupportedEncodingException e) { <= I want to test this exception but was not successful
log.error(ex.getMessage());
}

return "";
}

我尝试编写junit测试来实现,测试没有失败,但无法按预期抛出异常。

@Test
public void testEncodeString_Exception() throws UnsupportedEncodingException {
// Setup
final String testString= "U+FFFD";

PowerMockito.mockStatic(URLEncoder.class);
PowerMockito.when(URLEncoder.encode(testString, "UTF-8")).thenThrow(UnsupportedEncodingException.class);

// Run the test
final String result = classInstance.encodeString(testString);

// Verify the results
}

如果您以前遇到过以下问题,我将不胜感激任何形式的帮助或知识分享。谢谢!

最佳答案

您应该在类级别使用@PrepareForTest({URLEncoder.class})注释来告诉PowerMockito我们需要操作URLEncoder类的字节码。

如果您不这样做,PowerMockito 就无法模拟静态方法。

关于java - 如何在 JUnit 测试中抛出 UnsupportedEncodingException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59028715/

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