Eclipse Party 2011             SWTBot             Mariot Chauvin             Obeo, Francecopyright 2011 Obeo
Unit tests
Functional tests
Functional tests                    manual                      vs                   automatic
Manual functional tests
UI tests
Controls finding
Threads management ●   Tests non bloquants ●   Exécution dans un thread à part ●   Gestion de la synchronisation
Threads managementStandard JUnit test is launched in the UI thread/** * Wait the end of the asynchronous calls waiting in ...
SWTBot
SWTBot features  ●   API de type Fluent  ●   Integration avec JUnit  ●   Gestion des threads  ●   Gestion des évenements S...
SWTBot example    @Testpublic void canCreateANewJavaProject() throws Exception {    bot.menu("File").menu("New").menu("Pro...
SWTBot Widgets  ●   Wrapper : API fluent et gestion des threads  ●   Exécution synchrone des requêtes  ●   Exécution async...
SWTBot Matchers  ●   Utilisation de Hamcrest  ●   Création de regles de correspondance  ●   Bot.widget(      WidgetMatcher...
Matchers creation  ●   Utilisation de WidgetMatcherFactory  ●   withText(“Finish”)  ●   withLabel(“Username”)  ●   withReg...
Matchers combination  ●   allOf(matchers...)  ●   anyOf(matchers…)  ●   not(matcher)  ●   allOf(anyOf(matchers…), matchers...
SWTBot conditions  ●   Ecriture de test robustes et fiables  ●   Eviter dutiliser wait(long time)  ●   Utiliser waitUntil(...
Tips
Logging  ●   Utilisation de log4j  ●   Pensez à lactiver  ●   Voir la FAQ pour lactivation
Screenshots              ●   Un réalisé par erreur              ●   Pratique pour debugger
Timeout ●   Temps dattente pour les conditions ●   Modifiable globalement ou localement ●   SWTBotPreferences.TIMEOUT
Need a tutorial ? http://bit.ly/uLsBJ
Thanks         Questions ??
Copyright SXC - http://www.sxc.hu/txt/license.html●   Boxing gloves : http://www.sxc.hu/photo/901672●   Camera : http://ww...
Upcoming SlideShare
Loading in …5
×

SWTBot

2,031 views
1,944 views

Published on

Présentation de SWTBot en français

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,031
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SWTBot

  1. 1. Eclipse Party 2011 SWTBot Mariot Chauvin Obeo, Francecopyright 2011 Obeo
  2. 2. Unit tests
  3. 3. Functional tests
  4. 4. Functional tests manual vs automatic
  5. 5. Manual functional tests
  6. 6. UI tests
  7. 7. Controls finding
  8. 8. Threads management ● Tests non bloquants ● Exécution dans un thread à part ● Gestion de la synchronisation
  9. 9. Threads managementStandard JUnit test is launched in the UI thread/** * Wait the end of the asynchronous calls waiting in UI thread. */public static void synchronizationWithUIThread() { while (PlatformUI.getWorkbench().getDisplay().readAndDispatch()) { // Do nothing, just wait }}
  10. 10. SWTBot
  11. 11. SWTBot features ● API de type Fluent ● Integration avec JUnit ● Gestion des threads ● Gestion des évenements SWT ● Support de GEF ● Support de Eclipse forms
  12. 12. SWTBot example @Testpublic void canCreateANewJavaProject() throws Exception { bot.menu("File").menu("New").menu("Project...").click(); SWTBotShell shell = bot.shell("New Project"); shell.activate(); bot.tree().select("Java Project"); bot.button("Next >").click(); bot.textWithLabel("Project name:").setText("MyFirstProject"); bot.button("Finish").click();}
  13. 13. SWTBot Widgets ● Wrapper : API fluent et gestion des threads ● Exécution synchrone des requêtes ● Exécution asynchrone des commandes
  14. 14. SWTBot Matchers ● Utilisation de Hamcrest ● Création de regles de correspondance ● Bot.widget( WidgetMatcherFactory.widgetOfType(StyledText.class), composite);
  15. 15. Matchers creation ● Utilisation de WidgetMatcherFactory ● withText(“Finish”) ● withLabel(“Username”) ● withRegex(“Proceed to step (.*)”) ● widgetOfType(Button.class) ● withStyle(SWT.ARROW, “SWT.ARROW”) ● withTooltip(“Enable to drink”)
  16. 16. Matchers combination ● allOf(matchers...) ● anyOf(matchers…) ● not(matcher) ● allOf(anyOf(matchers…), matchers...)
  17. 17. SWTBot conditions ● Ecriture de test robustes et fiables ● Eviter dutiliser wait(long time) ● Utiliser waitUntil(ICondition condition)
  18. 18. Tips
  19. 19. Logging ● Utilisation de log4j ● Pensez à lactiver ● Voir la FAQ pour lactivation
  20. 20. Screenshots ● Un réalisé par erreur ● Pratique pour debugger
  21. 21. Timeout ● Temps dattente pour les conditions ● Modifiable globalement ou localement ● SWTBotPreferences.TIMEOUT
  22. 22. Need a tutorial ? http://bit.ly/uLsBJ
  23. 23. Thanks Questions ??
  24. 24. Copyright SXC - http://www.sxc.hu/txt/license.html● Boxing gloves : http://www.sxc.hu/photo/901672● Camera : http://www.sxc.hu/photo/733375● Watch : http://www.sxc.hu/photo/1154499● Bots : http://www.sxc.hu/photo/914512 and http://www.sxc.hu/photo/914514● Book : http://www.sxc.hu/photo/634335

×