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 :
- EasyMock
- JMock
- Mockito
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 >> |
