2

使用 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

结果:

### testing ...
.

✔ 1 test complete (1ms)    

似乎该inc方法从未被调用过。

4

1 回答 1

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

于 2012-05-16T05:31:19.443 回答