yadda presentation
TRANSCRIPT
![Page 1: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/1.jpg)
Yadda + WebDriver.io
Kostas Mamalis
@mamalisk
Github.com/mamalisk
![Page 2: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/2.jpg)
Automation framework
Methodology (BDD/ATDD)
Tools Evaluation & Selection
Tools integration
First Tests
Scaling, Maintenance, Sharing
Patterns
Common Pitfalls
![Page 3: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/3.jpg)
Yadda (github.com/acuminous/yadda)
BDD Style
Flexibility (‘define’ instead of ‘given, when, then’)
Dictionaries
![Page 4: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/4.jpg)
WebDriver.io
YAWF (Yet Another WebDriver Framework)…?
DSL driven & chainable:
Extensibility:
![Page 5: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/5.jpg)
Pitfalls
Large classes – Lack of SRP
Boilerplating within Step Definitions
Inability to Share test artifacts
![Page 6: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/6.jpg)
Simplify steps
Multiple definitions with different literals
Create dictionaries
Use ‘define’
![Page 7: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/7.jpg)
Modularization
Steps
![Page 8: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/8.jpg)
Modularization
Agent Missions
Using Prototypical extension
![Page 9: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/9.jpg)
Now I’m able to say:
![Page 10: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/10.jpg)
No Local Vars in Steps
Use Context!
Pass methods to the context e.g.
this.memory = {};
this.memory[‘value_to_remember’] =
‘test’;
![Page 11: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/11.jpg)
Modularization with Screens
Like Page Objects but only element containers:
![Page 12: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/12.jpg)
Now I’m able to say:
![Page 13: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/13.jpg)
For more examples
Github.com/mamalisk/yadda-pres
Npmjs.com agenta.js
![Page 14: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/14.jpg)
Reportinghttps://www.npmjs.com/package/yadda-mocha-html-reporter
![Page 15: Yadda presentation](https://reader031.vdocuments.net/reader031/viewer/2022022415/58ee0a541a28ab8f158b46ab/html5/thumbnails/15.jpg)
Thank you!
Twitter: @mamalisk
Github.com/mamalisk