2

mocha+tamejsを使用して私のテストコードを参照してください。

test / 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 に答える