2009-12-08 2 views
0

J'utilise JUnit.J'ai une méthode de test pour tester une méthode et quelques cas de test. Je veux lancer tous les cas de test dans cette méthode de test, mais je ne peux pas faire cela. Lorsque premier cas d'échec du test, méthode d'essai ne fonctionne pas second cas de testComment puis-je exécuter de nombreux cas de test pour une méthode de test

Voici mon code

public class ComputeServiceTest extends TestCase { 

//test add method 
public void testAdd() 
{ 
    ComputeServices instance = new ComputeServices(); 

    //First test case 
    int x1 = 7; 
    int y1 = 5; 

    int expResult1 = 13; 
    int result1 = instance.add(x1, y1); 
    assertEquals("First test case fail",expResult1, result1); 


    // Second test case 
    int x2 = 9; 
    int y2 = 6; 

    int expResult2 = 15; 
    int result2 = instance.add(x2, y2); 
    assertEquals("Second test case fail",expResult2, result2); 


} 

Comment puis-je faire cela?

Répondre

3

Le conseil standard ici serait de mettre votre deuxième cas de test dans une méthode séparée, puis il fonctionnera indépendamment du fait que le premier "cas de test" réussisse ou non.

Vous pouvez utiliser une méthode setUp pour initialiser l'instance ComputeServices afin de ne pas avoir besoin de cette règle dans chaque méthode de test.

+0

+1. Les commentaires dans la question indiquent que l'interrogateur a terriblement confus le terme «test élémentaire». Selon les commentaires, l'exemple devrait avoir plusieurs sous-classes différentes de TestCase. Une classe de TestCase pour chaque "test case". Cela résoudrait le problème, aussi. –

+0

@ S.Lott: Je ne confond pas le terme "test case". Dans ma question "test case" est un cas de test avec des entrées et des sorties attendues, mais pas une sous-classe de la classe TestCase.Je pense que votre solution est pas bon parce que je dois créer de nombreuses classes étendre la classe TestCase pour tester une méthode d'une classe. @unknow: Merci pour votre réponse.Selon votre réponse, si je veux tester une méthode de validation e-mail avec 5 cas de test, je dois avoir 5 méthode testEmail1, testEmail2, ........ Est-ce bon si je avoir de nombreux cas de test? –

+0

Vous pouvez avoir plusieurs méthodes de test (testEmail1, testEmail2, testEmail3) par classe "TestCase". Si vous voulez tester la classe Calculator.java, la norme est de créer CalculatorTest.java qui étend TestCase et créer autant de méthodes de test que nécessaire pour tester la fonctionnalité que fournit Calculator.java. Vous n'avez pas besoin d'une classe par méthode de test, 1 classe Java pour tester -> 1 classe de test à écrire (plusieurs méthodes de test). –

2

Un cas de test s'interrompt au premier échec d'assertion, ceci est intentionnel. Ceci permet d'isoler les cas de test: si votre seconde assertion échoue, comment sauriez-vous si instance.add (9, 6) est cassée, ou si cela a été provoqué par le premier appel de la méthode add()? ?

Ceci est utile lorsque la méthode sous test retourne un objet, ou NULL en cas d'erreur. La première assertion garantit que la méthode a renvoyé un objet, puis il est possible d'invoquer les méthodes de cet objet pour vérifier son état. Lorsque NULL est renvoyé, le cas de test abandonne lors de la première assertion et aucune exception NullPointerException est générée (le modèle est nommé guard assertion).

Il est possible d'avoir autant de méthodes de test dans un TestCase.

Questions connexes