Есть ли удобный способ издеваться над объектами HTTP-запроса и ответа для сред тестирования модулей?
Node.js: Mock HTTP-запрос и ответ
Ответ 1
Похоже, что https://github.com/howardabrams/node-mocks-http и https://github.com/vojtajina/node-mocks можно использовать для создания mock http.ServerRequest
и http.ServerResponse
.
Ответ 2
Из тега, похоже, этот вопрос касается Express. В этом случае supertest очень хорошо:
var request = require('supertest')
, express = require('express');
var app = express();
app.get('/user', function(req, res){
res.send(201, { name: 'tobi' });
});
request(app)
.get('/user')
.expect('Content-Type', /json/)
.expect('Content-Length', '20')
.expect(201)
.end(function(err, res){
if (err) throw err;
});
Для общего использования Node Flatiron Nock выглядит неплохо:
var nock = require('nock');
var example = nock('http://example.com')
.get('/foo')
.reply(200, { foo: 'bar' });
var http = require('http');
var options = {
host: 'example.com',
port: 80,
path: '/foo',
method: 'GET'
}
var req = http.request(options, function(res) {
res.on('data', function(chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function(e) {
console.log('error: ' + e);
});
req.end();
Вывод:
BODY: { "foo": "bar" }
Ответ 3
Я использую nodejutsu mock:
https://github.com/nodejitsu/mock-request
Возможно, это то, что вы ищете.
Ответ 4
Я написал библиотеку для измельчения ответов запросов, сделанных через стандартный HTTP или через модель запроса:
Ответ 5
Отъезд https://github.com/timsavery/node-hmock или npm install hmock
... любая обратная связь приветствуется! Решение для меня хорошо работало до сих пор.
Ответ 6
Mockery отлично подходит для этого.
По сути, он захватывает вызовы require
и возвращает отдельный объект-заглушка объекта/функции.
Ответ 7
Я рекомендую вам использовать motty. зачем нам нужен другой код?