Я использовал vowsjs и request библиотеки.
Я считаю, что они самые простые, поскольку обе библиотеки правильно задокументированы и, похоже, активно развиваются и поддерживаются. (Я не нашел достаточно документов для APIeasy .)
Вот пример теста Я пишу сейчас, чтобы проверить HTTP API Couchapp:
var request = require ('request')
, vows = require ('vows')
, assert = require ('assert');
var BASE_URL = "http://local.todos.com:5984/todos/"
, HEADERS = {
'Content-Type': 'application/json'
}
, revisionReference;
vows.describe ('CouchApp Todos REST API')
// --------------------------------------------
// Testing PUTs
// ============================================
.addBatch ({
"A PUT to /todos/test-host without data": {
topic : function () {
request ({
uri: BASE_URL + "test-host",
method: 'PUT',
headers: HEADERS
}, this.callback );
}
, "should respond with 201" : function ( err, res, body ) {
assert.equal ( res.statusCode, 201 );
}
, "should have an id 'test-host'" : function ( err, res, body ) {
assert.equal ( JSON.parse( res.body )._id, 'test-host' );
}
, "response should contain empty todos []" : function ( err, res, body ) {
assert.include ( JSON.parse( res.body ), 'todos' );
assert.deepEqual ( JSON.parse( res.body ).todos, [] );
}
}
})
.addBatch ({
"A PUT to /todos/test-host with one todo item (an object)" : {
topic : function () {
request ({
uri: BASE_URL + "test-host"
, body: JSON.stringify({
"title" : "Testing Todo",
"isDone" : false
})
, method : "PUT"
, headers : HEADERS
}, this.callback );
}
, "should respond with 201" : function ( err, res, body ) {
assert.equal ( res.statusCode, 201 );
}
, "should have an id 'test-host'" : function ( err, res, body ) {
assert.equal ( JSON.parse( res.body )._id, 'test-host' )
}
, "response should contain todos array with one item" : function ( err, res, body ) {
assert.include ( JSON.parse( res.body ), 'todos' );
assert.deepEqual (
JSON.parse( res.body ).todos
, [{
"title" : "Testing Todo",
"isDone" : false,
"_id" : 0
}]
);
}
}
})