0.1.0 • Published 11 years ago
specapi v0.1.0
restspec rest-api test
usage
- npm install restspec --save-dev
var Restspec = require('restspec');
new Restspec(options);options
nameString, This test's name.urlRootString, Url root eg. http://127.0.0.1casesArray, Test cases.hooksObject, Hooks function.doneFunction, Called when test cases exec done.
globals.request.headersObject,
case
nameString, This is name of caseuriString, Request url isurlRootconcaturi. eg. /sessionverbString, Enumget,post,put,patch,deletedefaultgetheadersObject, Request customer headers.dataFixed, Request send data.expectsStatusresponse.statusCodeJSONassert response.body
//case1. assert body
JSON: {
id: 1,
name: 'Hello'
}
//case2. body is an array, assert one
JSON: ['0', {
id: 1,
name: 'Hello'
}]
//case2. body is an array, assert all
JSON: ['*', {
id: 1,
name: 'Hello'
}]JSONTypesassert response.body typeJSONLengthassert response.body lengthHeaderassert one response.headers
Header: ['x-content-record-total', '2']Headersassert some response.headers
Headers: [
['x-content-record-total', '2'],
['content-type', 'application/json']
]Advanced Usage
JSON: {
// assert is require('assert')
id: function(actual, assert) {
assert.equal(typeof actual, 'number');
assert.equal(actual, 20);
}var case = {
name: 'This is name of case',
uri: '/session',
expects: {
Status: 201,
JSON: {
id: 1,
name: 'Hello world'
},
JSONTypes: ['parent', {
id: Number,
name: String
}]
}
}var case = function(lastBody, lastRes) {
return {
name: 'This is function return case'
uri: '/session',
expects: {
Status: 201,
JSON: {
id: 1,
name: 'Hello world'
},
JSONTypes: ['parent', {
id: Number,
name: String
}]
}
}
};var case = function(lastBody, lastRes) {
return new Promise(function(resolve, reject) {
return resolve({
name: 'This is function return case with promise'
uri: '/session',
expects: {
Status: 201,
JSON: {
id: 1,
name: 'Hello world'
},
JSONTypes: ['parent', {
id: Number,
name: String
}]
}
})
};
};var case = async () => {
const user = await Model.findOne({ where: { id: 1 } });
// If the function is returned, it will be called.
return () => {
const { age } = user;
if (age <= 18) return new Error(`Adult only: ${age}`);
return null;
};
};
};Comment
- cases run one by one
0.1.0
11 years ago