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.