【发布时间】:2017-12-16 16:37:36
【问题描述】:
我正在尝试使用以下代码对一个简单的 http REST 客户端使用 Node.js 的 mocha 和 chai 库进行单元测试:
var chai = require('chai');
var asrt = require('chai').assert;
var client = require('../index');
describe('#Do successful', function () {
it('should pass when schema, host and port are provided', function () {
client.do('http:', 'localhost', '8080', '', function (result) {
console.log("starting assertions");
asrt.isAbove(result.items.length,0);
// ... other assertions
});
});
});
当我使用 npm test 运行测试时,测试“通过”但从未打印记录“开始断言”的行,因为从未调用 client.do 函数回调,但我看到服务器正确接收请求并响应。
我显然遗漏了一些东西,但我不明白具体是什么。请注意:
1) 在非测试文件中使用的一段非常相似的代码会产生预期的结果(即:调用回调,如果填充了响应数据,则返回结果数据)。
2) 同样,我正在测试客户端,而不是服务器,所以我想我不应该使用 done() 函数(但我也尝试过,但没有成功)。
您对如何解决此问题有任何提示吗?谢谢
【问题讨论】:
-
你能显示
client.do()的来源吗?
标签: node.js unit-testing mocha.js chai