业务代码如下:
"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
謝邀。
A.a();
照你的意思應該是test.a();
解釋一下,建構子在實例化先前其自身的屬性是該函數物件的私有屬性,外部是無法存取的。
更新
這個是異步的測試案例,加個超時設定或強加個callback吧。
--recursive 這個參數只是遞歸執行目前目錄下子測驗用的
或
沒記錯的話,
mocha
的測試案例最多是2000ms
吧。測試非同步範例的時候,加上個-t
和-timeout
試試看吧,一個學生很少寫單元測驗。 。 。