使用 mocha.js 在 node.js 中测试外部 api 调用
testing external api calls in node.js using mocha.js
我正在尝试为我的 npm 模块编写测试,该模块负责与我的后端 api 进行通信。该模块将位于 cordova android 应用程序中,并将处理任何 api 调用。我遇到的问题似乎是对 mocha 的理解,但我在互联网上仔细看了看,找不到解决方案,所以我求助于大众。例如,我有一个函数
test: function() {
request.get({
url: defaultHost,
headers: {
}
}, function(err, httpResponse, body) {
if(err) {
return err;
} else {
console.log(body);
return body;
}
});
}
这个作品会。我现在正在尝试在 mocha 中为它创建测试。我遇到的问题是我不知道如何从 .get 调用 mocha 测试中获取 return 函数。 api returns json,所以我知道我将不得不进行相等比较,但目前我什至无法打印结果。我认为问题在于我可以开始工作的其他 mocha 测试,它们都有一个论点,即你在没有传递的地方传递。我当前的测试代码如下所示。
describe('#test', function() {
it('tests api reachability;', function() {
var test = new test();
});
});
如果有人可以解释之后需要什么,甚至只是在 google 上为我指明正确的方向,那就太棒了。我通常很擅长google,但在这方面找不到方向。
我认为 nock will solve this issue. Let's assume you sending get
request to some resource (http://domain.com/resource.json) 测试应该是这样的:
var nock = require('nock');
// ...
describe('#test', function() {
beforeEach(function () {
nock('http://domain.com')
.get('resource.json')
.reply(200, {
message: 'some message'
});
});
it('tests api reachability;', function() {
var test = new test();
});
});
我正在尝试为我的 npm 模块编写测试,该模块负责与我的后端 api 进行通信。该模块将位于 cordova android 应用程序中,并将处理任何 api 调用。我遇到的问题似乎是对 mocha 的理解,但我在互联网上仔细看了看,找不到解决方案,所以我求助于大众。例如,我有一个函数
test: function() {
request.get({
url: defaultHost,
headers: {
}
}, function(err, httpResponse, body) {
if(err) {
return err;
} else {
console.log(body);
return body;
}
});
}
这个作品会。我现在正在尝试在 mocha 中为它创建测试。我遇到的问题是我不知道如何从 .get 调用 mocha 测试中获取 return 函数。 api returns json,所以我知道我将不得不进行相等比较,但目前我什至无法打印结果。我认为问题在于我可以开始工作的其他 mocha 测试,它们都有一个论点,即你在没有传递的地方传递。我当前的测试代码如下所示。
describe('#test', function() {
it('tests api reachability;', function() {
var test = new test();
});
});
如果有人可以解释之后需要什么,甚至只是在 google 上为我指明正确的方向,那就太棒了。我通常很擅长google,但在这方面找不到方向。
我认为 nock will solve this issue. Let's assume you sending get
request to some resource (http://domain.com/resource.json) 测试应该是这样的:
var nock = require('nock');
// ...
describe('#test', function() {
beforeEach(function () {
nock('http://domain.com')
.get('resource.json')
.reply(200, {
message: 'some message'
});
});
it('tests api reachability;', function() {
var test = new test();
});
});