httptest v0.1.8
HTTP Test

Simply library for powerful and easy testing REST API
Install:
$ npm install httptest --save-devExample:
var httptest = require('httptest');
httptest('https://api.github.com/repos/andreychizh/')
.get('/node-httptest')
.setParam('version', 123)
.setHeader('User-Agent', 'Firefox');
.expectStatus(200)
.expectJSON()
.end(function(err, res) {
if (err) throw err;
console.log(res);
});API:
Chaining
Every method will return a httptest object, so methods can be chained.
httptest(uri)
Create request or group of request object and specify the base uri.
httptest('http://localhost:3000/').post(uri)
Set POST method of request.
httptest('http://localhost:3000/')
.post('/api/1.0/cars').get(uri)
Set GET method of request.
httptest('http://localhost:3000/')
.get('/api/1.0/cars').head(uri)
Set HEAD method of request.
httptest('http://localhost:3000/')
.head('/api/1.0/cars/123').put(uri)
Set PUT method of request.
httptest('http://localhost:3000/')
.put('/api/1.0/cars/123').patch(uri)
Set PATCH method of request.
httptest('http://localhost:3000/')
.patch('/api/1.0/cars/123').del(uri)
Set DELETE method of request.
httptest('http://localhost:3000/')
.del('/api/1.0/cars/123').setParam(param, value)
Set GET params of request.
// As object
httptest('http://localhost:3000/');
.get('/api/1.0/cars')
.setParam({sort: 'asc'})
// As key-value
httptest('http://localhost:3000/')
.get('/api/1.0/cars')
.setParam('sort', 'asc')
// Result
http://localhost:3000/api/1.0/cars?sort=asc.setBody(body)
Set POST, PUT, PATCH request body
// As object
httptest('http://localhost:3000/')
.post('/api/1.0/cars')
.setBody({vendor: 'BMW', model: 'M5'}).setHeader(header, value)
Set headers of request.
// As object
httptest('http://localhost:3000/')
.setHeader({'User-Agent': 'Firefox'})
// As key-value
httptest('http://localhost:3000/')
.setHeader('User-Agent', 'Firefox').expectStatus(status)
Check status code of response.
httptest('http://localhost:3000/')
.get('/api/1.0/cars')
.expectStatus(200).expectJSON()
Checks the type of the response data. Method also parse JSON and return JavaScript object as res on .end(callback).
httptest('http://localhost:3000/')
.get('/api/1.0/cars')
.expectJSON().end(callback)
Perform request with given options. Invoke callback(err, res).
httptest('http://localhost:3000/')
.get('/api/1.0/cars')
.end(function(err, res) {
if (err) throw err;
console.log(res);
);Workflow
Possible to create a common options for a group of requests. Also support override of params, headers, body, expect.
var httptest = require('httptest');
// Common options
var http = httptest('http://localhost:3000/')
.setHeader('User-Agent', 'Firefox')
.setParam('token', 'secret_key')
.setParam('userId', '111')
.expectStatus(200)
.expectJSON();
// Test 1
http.get('/api/cars')
.setParam('limit', 10)
.end(function(err, res) {
if (err) throw err;
console.log(res);
});
// Test 2
http.get('/api/cars/123')
.setParam('fields', 'vendor')
.end(function(err, res) {
if (err) throw err;
console.log(res);
});
// Test 3
http.get('/api/cars/456')
.setParam('fields', 'model')
.setParam('userId', '222') // Override base options
.end(function(err, res) {
if (err) throw err;
console.log(res);
});Package manager page
Direct link to the package
License
Released under the MIT license. Copyright (c) 2013-2014 Andrey Chizh.
