2016-04-14 40 views
0

JsonSyntaxException öğesini sınayan bir sınamanın sınanması, beklenen hatanın atılmasını beklemesine rağmen sınama başarısız oluyor. Testim: Junit4 test JsonSyntaxException başarısız oluyor

@Rule 
    public ExpectedException exception = ExpectedException.none() ; 
    @Test 
    public void customersJsonToJsonObjectMalformatedJson() { 
     String malFormated = "resources/customerTestMalformated.txt"; 
     exception.expect(JsonSyntaxException.class); 
     Invitation.customersJsonToJsonObject(malFormated); 
    } 

Benim deneyin catch Blok:

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()); 
} 

istisnası atılır ama Testi iletmiyor. Birisi neyi yanlış yaptığımı gösterebilir.

cevap

1

ExpectedException yalnızca, çağrılan yöntemlerden biri tanımlı İstisnayı bir değer veya boşluk döndürmek yerine arayan kişiye geri atarsa ​​başarılı olur.

Invitation.customersJsonToJsonObject() ait Geçerli uygulama için-döngü, ancak İstisna yakalayan ve yöntemi içinde açmış senin içinde bir JsonSyntaxException atabilir. Yöntem geçersiz kılar, bu nedenle JUnit herhangi bir Özel Durum görmez.

Çözüm: Deneme çıktısını kaldırın veya teste tabi tutulan Özel Durumun görünümünü sınayın.

İlgili konular