O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
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...
Próximos SlideShares
Carregando em…5
×

SWTBot

2.357 visualizações

Publicada em

Présentation de SWTBot en français

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×