Automate the recording and plack-back functionality provided by nock.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
lib
src
test
.gitignore
Cakefile
README.md
package.json

README.md

#Nock-VCR

Like the Ruby VCR gem, record your test-suite's HTTP interactions and replay them during future runs for speedy, deterministic, and accurate tests. Built atop nock's testing and recording capability.

Installation

npm install nock-vcr

Usage

In your tests, require nock-vcr. Then use insertCassette to mark the start of where recording - and later playback - should begin and ejectCassette where it should end. Recorded "cassettes" - nock code to mock the transactions - will be saved under test/cassettes!

For example:

nvcr = require 'nock-vcr'

fs = require 'fs'
http = require 'http'

requestComplete = false

describe 'using nock-vcr', ->
  context 'insert a cassette, and eject it when it is done', ->
    beforeEach (done)->
      nvcr.insertCassette 'Your cassette name here'
      options = method: 'GET', host: 'google.com', port: 80, path: '/'
      http.request(options, (res)=>
        res.on 'end', =>
          requestComplete = true
          nvcr.ejectCassette()
          done()
      ).end()

    it 'creates a cassette', ->
      expect(requestComplete).to.be.true

You can force nock-vcr to record all the time by passing and setting a record option of insertCassette to the string 'ALL', or by setting the environment variable NOCK_VCR_MODE to the same value.

Notes

Currently this runs on top of a modified version of nock that corrects a bug in the code generated during recording as well as a way to re-activate mocking after a restore.

Upcoming Features

  • More options that can affect the recording behavior.
  • Hooks into popular testing frameworks.