Introduction à GWT par Alexandre PUGEAT



Environnement de tests

Présentation

Le framework GWT comporte un environnement de tests complet. Il fournit une API riche et extensible pour tester l'application Web.

GWT permet de créer des tests unitaires en héritant la classe GWTTestCase. Le framework s'appuie sur JUnit pour cette partie concernant les tests unitaires :

			
public class MyTests extends GWTTestCase {

  public String getModuleName() {
    return "fr.umlv.test.myTest";
  }

  public void testSimple() {
    assertTrue(true);
  }
}


Suite de tests

GWT offre la possibilité de créer des suites de tests avec la classe GWTTestSuite comme le montre l'exemple suivant :

			
public class MyTestSuite extends GWTTestSuite {
  public static Test suite() {
    TestSuite suite = new TestSuite("Test for a Hello World Application");
    suite.addTestSuite(TotoTest.class);
    suite.addTestSuite(TutuTest.class);
    return suite;
  }
}


Tests par bouchons

De plus, dans le but d'améliorer l'intégration GWT prend en charge les tests par bouchons. GWT est compatible avec des APIs JAVA tel que :

Mocking (proxy dynamique) : simulation par contrat, cest une copie de lobjet cible a tester.

Voici un exemple de tests avec JMock :


@RunWith(JMock.class)  
public class Mocking {  
    Mockery context = new JUnit4Mockery() {{  
        // Enable CGLIB mocking of concrete classes  
        setImposteriser(ClassImposteriser.INSTANCE);  
    }}; 
    @Before  
    public void disableWidgets() {  
        GWTMockUtilities.disarm();  
    }  
    @After  
    public void reEnableWidgets() {  
        GWTMockUtilities.restore();  
    }      
    @Test  
    public void mock_a_button() {  
        Button button = context.mock(Button.class);  
    }  
} 

Dans cet exemple, nous faisons appel à GWTMockUtilities pour pouvoir mocker un widget GWT car le compilateur recommande d'étendre la classe GWTTestCase.



Bilan

Les tests fonctionnels n'ont pas été oubliés par le framework. Ils peuvent être robotisés en utilisant les outils Selenium ou l'API JMeter.

Pour terminer la partie sur les types de tests, la classe Benchmark permet de tester un traitement important executé des centaines de fois séquentiellement et donc d'évaluer les performances de l'application.

Pour conclure sur l'environnement de tests, l'infrastructure d'exécution des tests fournie par GWT est complexe. Les outils de build Ant et Maven permettent de lancer ces tests.



<< Design Pattern Conclusion >>

GWT Logo