nock and cucumber

Hey there, how are you?

The real coder doesn't test. Only the ones who fear are testing. But not him.

(from here)

nock is an HTTP mocking and expectations library for Node.js


var nock = require('nock');
var couchdb = nock('https://kikoo.js')
  .reply(200, {
    _id: '123ABC',
    _rev: '946B7D1C',
    username: 'toto',
    email: 'toto2015@kikoo.js'
var scope = nock('https://kikoo.js')
  .post('/users', {
    username: 'toto',
    email: 'toto2015@kikoo.js'
  .reply(201, {
    ok: true,
    id: '123ABC',
    rev: '946B7D1C'

Good to know



How to cucumber?

  • Describe behaviour in plain text
  • Write a step definition in Ruby
  • Run and watch it fail
  • Write code to make the step pass
  • Run again and see the step pass
  • Repeat 2-5 until green like a cuke



 1: Feature: Some terse yet descriptive text of what is desired
 2:   Textual description of the business value of this feature
 3:   Business rules that govern the scope of the feature
 4:   Any additional information that will make the feature easier to understand
 6:   Scenario: Some determinable business situation
 7:     Given some precondition
 8:       And some other precondition
 9:      When some action by the actor
10:       And some other action
11:       And yet another action
12:      Then some testable outcome is achieved
13:       And something else we can check happens too
15:   Scenario: A different situation
16:       ...

Steps: Gherkin => Code


String interpolation

this.Then(/^I should see "(.*)" as the page title$/, function (title, callback) { ...
this.Then('I should see "$title" as the page title', function (title, callback) { ...


  • Testing environment
  • "this" is always the same !
  • Bullet Three


  • Before and After
  • Access to the scenario
  • "this" is always the same !



Questions ?

nock and cucumber

By Siegfried Ehret

nock and cucumber

  • 2,463