2010-06-09 15 views
3

Vous ne savez pas si c'est possible, mais cela me fera gagner beaucoup de temps si c'est le cas. Lorsque je crée un scénario de test Junit4 dans Eclise, je n'inclue généralement pas toutes les méthodes que je souhaite tester en premier, et plus tard, j'aimerais ajouter les méthodes non testées ou les nouvelles méthodes au scénario de test. Actuellement, je le fais en tapant de nouvelles méthodes de test dans la classe de cas de test existante. Existe-t-il un moyen de mettre en évidence le nom de la méthode et de créer un scénario de test s'il n'existe pas ou de l'ajouter à un scénario de test existant dans Eclipse? Merci d'avance!Ajouter une méthode de test au cas de test existant en surlignant le nom de la méthode dans Eclipse

David

Répondre

2

Non, mais honnêtement, vous ne devriez pas être avoir un à une cartographie de tests aux méthodes de toute façon. Je pense que la deuxième page du dialogue "Create JUnit TestCase" d'Eclipse est très mal conçue car elle donne l'impression qu'un mappage un à un est utile.

Vous devriez avoir exactement autant de tests que nécessaire pour tester entièrement chaque méthode, et chaque test ne devrait tester qu'un aspect du comportement de la méthode. Donc, si vous avez besoin de deux, trois ou quatre tests, c'est bien.

Ce qui m'amène à affirmer que la fonctionnalité que vous recherchez ne serait pas extrêmement utile, car vous devrez ajouter beaucoup plus de méthodes de test de toute façon!

1

Impossible. En outre, une méthode ne signifie pas que vous avez exactement un test de test. Comme l'a dit @Danny, vous aurez besoin de plusieurs tests pour tester tous les scénarios possibles pour cette méthode. Si vous combinez tous ces scénarios de test dans un grand test, cela ne sera pas très utile. C'est parce que lorsque ce test échoue, vous devrez creuser profondément dans le test de la boîte juste pour savoir quel scénario échoue, ce qui est lourd.

Pour tester une méthode, il est généralement (sinon, toujours) préférable d'avoir de nombreux petits cas de test plutôt qu'un seul gros cas de test. En cas d'échec, vous savez exactement quel scénario de test échoue immédiatement.

+1

Merci pour vos deux réponses. Je comprends que j'ai besoin de beaucoup de petits testcases pour une méthode, et je n'essaie pas de faire le mapping one-to-one. Ce que je voulais dire, c'est que vous avez créé une méthode de test dans un cas de test pour la méthode getMoney(), et maintenant vous voulez ajouter une autre méthode de test pour la même méthode. Actuellement, je dois le faire en tapant le scénario de test. Puis-je simplement mettre en évidence getMoney(), clic droit, créer une autre méthode de test dans le cas de test s'il en existe un. Je suppose que je suis juste trop paresseux ici, :-) –

1

Créez un nouveau JUnit comme d'habitude, mais utilisez un autre nom pour la classe, par exemple JavaClassTest2, puis collez la méthode générée.

Off Sujet:

Je préfère « on est à une » cartographie, à moins que je trouve une meilleure approche à l'utilisation d'une méthode par scénario. Je veux éviter autant de scénarios de test identifiés par les noms de méthodes de test. Ce que je fais est suivre ce modèle:

  1. Énumérer les scénarios de test possibles basés sur le javadoc et les attentes en tant que message d'erreur de test. Cela sert d'indice de scénario, donc je peux facilement revenir en arrière pour étudier quel scénario j'ai peut-être manqué.
  2. Implémenter le test pour chaque scénario par paragraphe suivant l'indexation de l'étape 1 pour les noms de variables.

    @Test public void testRemoveHtmlTags() { 
    String[] test = { 
         "0. Null argument test failed.", 
         "1. Case sensitive test failed.", 
         "2. Case insensitive test failed." }; 
    
    
    try { 
        StringUtils.removeHtmlTags(null); 
        fail(test[0]); 
    } catch (IllegalArgumentException iae) {} 
    
    
    String input1 = "The quick Brown <b>Fox</b> Jumps&nbsp;Over The Lazy Dog. &gt;&lt;"; 
    String output1 = StringUtils.removeHtmlTags(input1); 
    assertEquals(test[1], "The quick Brown Fox Jumps Over The Lazy Dog. ><", output1); 
    
    
    String input2 = "The quick Brown <B>Fox</b> Jumps&nbsp;Over The Lazy Dog. &gt;&lt;"; 
    String output2 = StringUtils.removeHtmlTags(input2); 
    assertEquals(test[2], "The quick Brown Fox Jumps Over The Lazy Dog. ><", output2); 
    

    }