【发布时间】:2012-08-27 17:47:13
【问题描述】:
如何使用 NodeJs 在 Mocha 中模拟客户端和服务器。 具体来说,我有以下代码:
app.post ('path name', function (req, res) {
// Some Action
res.send(response);
});
我想模拟req、res 参数并测试res(状态、标题、消息)。
【问题讨论】:
如何使用 NodeJs 在 Mocha 中模拟客户端和服务器。 具体来说,我有以下代码:
app.post ('path name', function (req, res) {
// Some Action
res.send(response);
});
我想模拟req、res 参数并测试res(状态、标题、消息)。
【问题讨论】:
Mocha 本身不提供 mock/stub/spy 类型的功能。 Sinon 是一个流行的库。主页包含测试 ajax 及其 Fake XMLHTTPRequest 对象的示例。
【讨论】:
我发现Node-Fakeweb 很有用
var request = require('request');
// Mocking a client request
request.get({ uri: 'URI', body: 'body' }, function (err, resp, body) {
// Some Action
});
});
【讨论】:
您可以将 mocha 与 supertest 一起使用来模拟请求。这是一个关于如何做到这一点的精彩教程: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
【讨论】:
Supertest 用于集成测试,而不是单元测试,因为它触及真正的端点并且需要数据库后端。