使用mocha + tamejs查看我的测试代码:
测试/ t.tjs
require('should');
function inc(n, callback) {
setTimeout(function() {
console.log('### inc: ' + n);
callback(n+1);
}, 1000);
};
describe('test', function(){
it('show ok with tamejs', function(){
console.log('### testing ...');
var result;
await { inc(1, defer(result)); }
console.log('result: ' + result);
result.should.equal(123456); // won't pass
});
});
将其编译为t.js:
tamejs -o test/t.js test/t.tjs
运行mocha
mocha
结果:
### testing ...
.
✔ 1 test complete (1ms)
似乎从未调用inc
方法。
答案 0 :(得分:1)
问题是我没有正确使用摩卡。
应该写成:
describe('test', function(){
it('show ok with tamejs', function(done){
console.log('### testing ...');
var result;
await { inc(1, defer(result)); }
console.log('result: ' + result);
result.should.equal(123456); // won't pass
done();
});
});
请注意done
,它在mocha中用于确定异步调用是否已完成。没有它,mocha就不会等待异步调用。