Julien Biezemans - Cucumber.js: Cuke up your JavaScript!

We're now living the golden age of JavaScript. An increasingly number of people are seeing it as a complete programming language. Therefore, agile development practices are now being adapted and applied to JavaScript code production. Behaviour-Driven Development is a second-generation agile methodology with a strong focus on communication. In BDD, specifications are expressed through examples in the form of scenarios. Originally written in Ruby, Cucumber is popular a tool for automating and validating a system against its scenarios. A year ago, native JavaScript BDD solutions similar to Cucumber were almost inexistant. Yet the need for it was manifest. It didn't take me long before I started hacking on a port of the virtual cucurbitaceae and joined the Cucumber core team. Cucumber.js is a native JavaScript implementation of Cucumber. It is a strict and robust 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 Cucumber.js. After briefly exposing the history and goals of the project, I'll demonstrate how to write features and scenarios, step definitions, hooks, support code, how to invoke Cucumber.js from both Node.js and browser environments. And of course, you'll see how to integrate it with your Ruby and Rails projects, because - yes - it works well with them.