0
...Cuke up your JavaScript!                    @cucumber_js
Julien Biezemans     @jbproshttp://jbpros.net
Why?
Behaviour-Driven  Development
Outside-in
Tools?
RSpec
?
Bootstrap
Environments
Node.js
CLI apps
Web apps Selenium
Headless web apps  zombie.js, phantom.js, ...
Browser
Web apps
Cukecipes
Getting started
features/manage_recipes.feature
World
app/models/recipe.js
Tags
Hooks
Headless
Manyworlds
features/support/world.js
features/support/persistence_world.js
Zombie.js
Automated browser
Selenium
In-browser
http://is.gd/cukejs
http://is.gd/cukejs
Full stack  http://is.gd/cukejs
http://is.gd/cukejs
Anyone can cuke.
How to set the context?
Photo: Richard Vantielcke - LudImaginary (http://www.ludimaginary.net)
Is it stable?
itself
Node.js & Ruby on Rails
.net, PHP, Java, ...
The future
EX                                      P                                        ER                                       ...
M EN   features/support/kite_world.js   E RIEXP
NT   features/support/kite_world.js          E      R IM   P EE X
T A                EN         R IM   P EE X                        Cukestall
cucumber-html
Catch up with Cucumber.rb
Documentation* This book does not exist, obviously.
We need you!
http://checkthis.com/cukejs-talk
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Cucumber.js: Cuke up your JavaScript!
Upcoming SlideShare
Loading in...5
×

Cucumber.js: Cuke up your JavaScript!

10,889

Published on

We're now living the golden age of JavaScript. An increasingly number of people are seeing it as a complete language. Therefore, agile development practices are now being adapted and applied to JavaScript code production. However, there has been a lack of support tools in the JS ecosystem, compared to what can be found on other platforms.

A year ago, native BDD solutions similar to Cucumber were almost inexistant. Yet the need for it was manifest. It didn't take me long before I proposed and started hacking on the port of our favourite cucurbitaceae.

Cucumber.js is a native JavaScript implementation of Cucumber. It is a strict port that can run on any JavaScript environment. It runs on Node.js as well as within any browsers, making it virtually serviceable against everything producing JavaScript and HTML (Node.js, Ruby on Rails, PHP, .Net, etc.).

This is an introduction to the young Cucumber.js. After briefly exposing the history and goals of the project, I'll demonstrate how to write features, step definitions, hooks, support code, how to invoke it from both Node.js and browser environments.

Presented at:
- CukeUp! 2012: http://skillsmatter.com/podcast/agile-testing/cucumber-js-cuke-up-your-javascript
- LNUG June 2012: http://lnug.org/

Published in: Technology, Self Improvement

Transcript of "Cucumber.js: Cuke up your JavaScript!"

  1. 1. ...Cuke up your JavaScript! @cucumber_js
  2. 2. Julien Biezemans @jbproshttp://jbpros.net
  3. 3. Why?
  4. 4. Behaviour-Driven Development
  5. 5. Outside-in
  6. 6. Tools?
  7. 7. RSpec
  8. 8. ?
  9. 9. Bootstrap
  10. 10. Environments
  11. 11. Node.js
  12. 12. CLI apps
  13. 13. Web apps Selenium
  14. 14. Headless web apps zombie.js, phantom.js, ...
  15. 15. Browser
  16. 16. Web apps
  17. 17. Cukecipes
  18. 18. Getting started
  19. 19. features/manage_recipes.feature
  20. 20. World
  21. 21. app/models/recipe.js
  22. 22. Tags
  23. 23. Hooks
  24. 24. Headless
  25. 25. Manyworlds
  26. 26. features/support/world.js
  27. 27. features/support/persistence_world.js
  28. 28. Zombie.js
  29. 29. Automated browser
  30. 30. Selenium
  31. 31. In-browser
  32. 32. http://is.gd/cukejs
  33. 33. http://is.gd/cukejs
  34. 34. Full stack http://is.gd/cukejs
  35. 35. http://is.gd/cukejs
  36. 36. Anyone can cuke.
  37. 37. How to set the context?
  38. 38. Photo: Richard Vantielcke - LudImaginary (http://www.ludimaginary.net)
  39. 39. Is it stable?
  40. 40. itself
  41. 41. Node.js & Ruby on Rails
  42. 42. .net, PHP, Java, ...
  43. 43. The future
  44. 44. EX P ER IM Kite EN TA LGherkin Selenium Browser Driver Step Cukestall DSL iFrame App defs Driver Zombie.js Zombie.jsWorld Driver
  45. 45. M EN features/support/kite_world.js E RIEXP
  46. 46. NT features/support/kite_world.js E R IM P EE X
  47. 47. T A EN R IM P EE X Cukestall
  48. 48. cucumber-html
  49. 49. Catch up with Cucumber.rb
  50. 50. Documentation* This book does not exist, obviously.
  51. 51. We need you!
  52. 52. http://checkthis.com/cukejs-talk
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×