Tamejs无法使用摩卡咖啡?

时间:2012-05-13 13:38:46

标签: unit-testing mocha tamejs

使用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方法。

1 个答案:

答案 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就不会等待异步调用。