gpt4 book ai didi

java - Junit4 测试 JsonSyntaxException 失败

转载 作者:行者123 更新时间:2023-12-01 10:03:25 24 4
gpt4 key购买 nike

正在测试一个抛出 JsonSyntaxException 的类,即使我期望抛出预期的错误,测试仍然失败。我的测试:



<前>@规则
公共(public) ExpectedException 异常 = ExpectedException.none() ;
@测试
公共(public)无效customersJsonToJsonObjectMalformatedJson(){
String malFormated = "resources/customerTestMalformated.txt";
异常.expect(JsonSyntaxException.class);
Invitation.customersJsonToJsonObject(malFormated);
}

我的 try catch block :



<前>尝试{
for (字符串行: Files.readAllLines(Paths.get(filePath))) {
JsonObject jsonObjCustomer= (JsonObject) new JsonParser().parse(line);
jsonObjCustomers.add(jsonObjCustomer);
}

} catch (JsonSyntaxException e){
System.err.println(e.getClass());
}

抛出异常但测试未通过。有人可以发现我做错了什么吗?

最佳答案

仅当调用的方法之一将定义的异常抛出回调用者而不是返回值或 void 时,ExpectedException 才会成功。

您当前的 Invitation.customersJsonToJsonObject() 实现可能会在 for 循环内抛出 JsonSyntaxException,但异常会被捕获并记录在方法内部。该方法返回 void,因此 JUnit 不会看到任何异常。

解决方案:删除 try-catch 或更改测试以查找记录的异常。

关于java - Junit4 测试 JsonSyntaxException 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634744/

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