2015-10-02 2 views
-1

Version: testng-6.8.8.jarÉvaluez les affirmations après que l'exception a eu lieu?

Ce test fonctionne vert:

@Test(expectedExceptions = { NullPointerException.class }) 
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() throws Exception { 
    String iAmNull = null; 
    int length = iAmNull.length(); 
    assertEquals(0, 1); 
} 

Tout fichier de configuration ou d'autres options
de poursuivre et d'évaluer après l'exception affirme a eu lieu?

+0

TestNG ne peut pas savoir que vous avez d'autres assertions après l'exception. Vous devez utiliser try/catch dans ce cas. – juherr

Répondre

2

Vous devez réécrire votre test. Par exemple:

@Test 
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() { 
    String iAmNull = null; 
    boolean hasNpe = false; 
    try { 
    int length = iAmNull.length(); 
    } catch(NullPointerException npe) { 
    hasNpe = true; 
    } 
    assertTrue(hasNpe); 
    assertEquals(0, 1); 
} 
2

Il n'a rien à voir avec TestNG. C'est à propos de comment Java fonctionne (et devrait fonctionner). Tout appel de méthode sur null (<nullObject>.someMethod()) provoque le lancement de NullPointerException. Si vous ne l'attrapez pas dans votre méthode, il est propagé dans la pile des appels. S'il n'est pas géré, l'exécution se termine par une trace de pile.