2015-08-30 1 views
-2

Fondamentalement, j'essaie de démarrer un nouveau projet et de faire correctement des tests unitaires avec le tout. Cependant, je suis sur le point d'abandonner complètement les tests unitaires car le titre dit que je reçois un état d'échec même quand je code dur AssertEquals (1,1).Junit continue à échouer dans NetBeans même lorsque AssertEquals (1,1)

@Test 
public void testGetSeason() { 
    System.out.println("getSeason"); 
    Episode instance = new Episode(1, 1, null); 
    int expResult = 1; 
    int result = instance.getSeason(); 
    assertEquals(1,1); //assertEquals(expResult, result); 
    // TODO review the generated test code and remove the default call to fail. 
    fail(String.format("Episode getSeason Failed: expected %1$s actual %2$s", expResult, result)); 
} 

Alors oui, quelqu'un sait pourquoi 1 = 1 provoque un état d'échec?

Répondre

3

vous appelez la méthode fail() qui fera échouer votre test. La méthode fail est généralement utilisée pour échouer un test si une exception n'a pas été levée, en l'appelant dans le bloc try.

+0

Merci. Cela a fonctionné. On pourrait penser que lorsque vous obtenez du code "généré", il est ajouté à une instruction try catch. –

2

Vous appelez fail() qui provoquera instantanément l'échec de votre test. Retirez-le et cela fonctionnera.

Je suppose que vous pensez que fail() affichera simplement le message que vous avez fourni si l'assertion a échoué, et vous n'avez pas réalisé qu'il échoue réellement le test lui-même. Pour cela, vous pouvez essayer d'utiliser assertEquals, voir ceci pour plus de détails: http://junit.sourceforge.net/javadoc/org/junit/Assert.html

+0

C'est la première fois que je joue avec JUnit. Je suis plus utile pour utiliser la bibliothèque de tests unitaires en C#. –

+0

@BrendanRusso J'ai édité dans une alternative qui pourrait aider à faire ce que vous cherchez. En outre, les taxis répondent juste chargés sur mon mobile, je ne l'ai pas vu au début, mais la même chose. Il a répondu en premier. – Zarwan