Node.js下异步调用失效
业务代码如下:
"use strict";
var request = require('request')
var A = function () {
this.a = function () {
var op = {
url: 'www.test.com'
...
}
request(op, function(err, res, data){
console.log('request OK')
console.log(data);
})
}
};
module.exports = A;
对应的单元测试代码如下:
var should = require('chai').should();
var A = require('../../lib/A');
var test = new A();
describe('A test', function () {
it('test', function () {
test.a();
})
});
我期望它应该能够输出request OK
和data,但是实际上mocha在进行单元测试的时候没有任何输出就直接通过了。
这里的异步调用为什么没有正常进行呢?
mocha参数为mocha --recursive
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
谢邀。
A.a();
按照你的意思应该是test.a();
解释一下,构造函数在实例化以前其自身的属性是该函数对象的私有属性,外部是访问不到的。
更新
这个是异步的测试用例,加个超时设置或者强加个callback吧。
--recursive 这个参数只是递归执行当前目录下子测试用的
或者
没记错的话,
mocha
的测试用例最多是2000ms
吧。测试异步例子的时候,加上个-t
和-timeout
试试吧,一个学生很少写单元测试。。。