cucumber.js: cuke up your javascript!
DESCRIPTION
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/TRANSCRIPT
...Cuke up your JavaScript!
@cucumber_js
Why?
Behaviour-DrivenDevelopment
Outside-in
Tools?
RSpec
?
Bootstrap
Environments
Node.js
CLI apps
Selenium
Web apps
zombie.js, phantom.js, ...
Headless web apps
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
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
Kite
App
Browser
DSLStepdefs
SeleniumDriver
World
CukestallDriver
Zombie.jsDriver
iFrame
Zombie.js
Gherkin
EXPER
IMEN
TAL
features/support/kite_world.js
EXPE
RIMEN
TAL
features/support/kite_world.js
EXPE
RIMEN
TAL
Cukestall
EXPE
RIMEN
TAL
cucumber-html
Catch up with Cucumber.rb
Documentation
* This book does not exist, obviously.
We need you!