2016-04-14 20 views
0

JsonSyntaxExceptionをスローするクラスをテストしていますが、予想されるエラーが発生すると予想されてもテストが失敗します。 私のテスト: 私のキャッチキャッチブロック: Junit4テストJsonSyntaxExceptionが失敗する

try { 
    for (String line : Files.readAllLines(Paths.get(filePath))) { 
     JsonObject jsonObjCustomer= (JsonObject) new JsonParser().parse(line); 
     jsonObjCustomers.add(jsonObjCustomer); 
    } 

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

例外がスローされますが、テストはパスしていません。誰かが間違ってやっていることを見分けることができます

答えて

1

ExpectedExceptionは、呼び出されたメソッドの1つが、値またはvoidを返す代わりに、定義されたExceptionを呼び出し元に戻す場合にのみ成功します。

Invitation.customersJsonToJsonObject()の現在の実装では、forループ内にJsonSyntaxExceptionがスローされることがありますが、例外はメソッド内でキャッチされ、ログに記録されます。このメソッドはvoidを返します。そのため、JUnitは例外を認識しません。

解決方法:try-catchを削除するか、ログに記録されたExceptionの外観を変更してください。

関連する問題