Acceptance testing with Cucumber and Zombie.js
OAuth authentication uses a callback mechanism; this is messy to test with an integration-testing tool such as SuperTest; we require something a little more end-to-end.
Cucumber allows teams to describe software behavior in a simple plain text language called Gherkin . The process of describing this behavior aids development; the output serves as documentation that can be automated to run as a set of tests. Let's install cucumber:
npm install -g cucumber
Zombie.js is simple, lightweight framework for doing headless full-stack testing. Let's install Zombie.js
:
npm install zombie --save-dev
Let's automate running Cucumber with a grunt task:
npm install grunt-cucumber --save-dev
Add the following to our gruntfile ./gruntfile.js
. The section files
defines the location of our feature files, and options:steps
defines the location of our step definitions:
cucumberjs: { files: 'features', options: { steps: "features/step_definitions...