Groovy - Tests unitaires

L'unité fondamentale d'un système orienté objet est la classe. Par conséquent, les tests unitaires consistent en des tests au sein d'une classe. L'approche adoptée consiste à créer un objet de la classe en cours de test et à l'utiliser pour vérifier que les méthodes sélectionnées s'exécutent comme prévu. Toutes les méthodes ne peuvent pas être testées, car il n'est pas toujours pratique de tester chaque chose. Mais des tests unitaires doivent être effectués pour les méthodes clés et critiques.

JUnit est un framework de test open-source qui est la norme industrielle acceptée pour les tests unitaires automatisés du code Java. Heureusement, le framework JUnit peut être facilement utilisé pour tester les classes Groovy. Tout ce qui est nécessaire est d'étendre la classe GroovyTestCase qui fait partie de l'environnement Groovy standard. La classe de cas de test Groovy est basée sur le cas de test Junit.

Ecrire un scénario de test Junit simple

Supposons que nous ayons la classe suivante définie dans un fichier de classe d'application -

class Example {
   static void main(String[] args) {
      Student mst = new Student();
      mst.name = "Joe";
      mst.ID = 1;
      println(mst.Display())
   } 
} 
 
public class Student {
   String name;
   int ID;
	
   String Display() {
      return name +ID;
   }  
}

La sortie du programme ci-dessus est donnée ci-dessous.

Joe1

Et maintenant supposons que nous voulions écrire un cas de test pour la classe Student. Un cas de test typique ressemblerait à celui ci-dessous. Les points suivants doivent être notés à propos du code suivant -

  • La classe de cas de test étend la classe GroovyTestCase
  • Nous utilisons l'instruction assert pour nous assurer que la méthode Display renvoie la bonne chaîne.
class StudentTest extends GroovyTestCase {
   void testDisplay() {
      def stud = new Student(name : 'Joe', ID : '1')
      def expected = 'Joe1'
      assertToString(stud.Display(), expected)
   }
}

La suite de tests Groovy

Normalement, à mesure que le nombre de tests unitaires augmente, il deviendrait difficile de continuer à exécuter tous les cas de test un par un. Par conséquent, Groovy fournit une fonctionnalité pour créer une suite de tests qui peut encapsuler tous les cas de test dans une unité logicielle. Le code suivant montre comment cela peut être réalisé. Les choses suivantes doivent être notées à propos du code -

  • GroovyTestSuite est utilisé pour encapsuler tous les cas de test en un seul.

  • Dans l'exemple suivant, nous supposons que nous avons deux fichiers de cas de tests, l'un appelé StudentTest et l'autre est EmployeeTest qui contient tous les tests nécessaires.

import groovy.util.GroovyTestSuite 
import junit.framework.Test 
import junit.textui.TestRunner 

class AllTests { 
   static Test suite() { 
      def allTests = new GroovyTestSuite() 
      allTests.addTestSuite(StudentTest.class) 
      allTests.addTestSuite(EmployeeTest.class) 
      return allTests 
   } 
} 

TestRunner.run(AllTests.suite())