2012-01-22 14 views
3

私はノードで作業しており、テストを書くために誓いを使用しています。非同期Vows.jsのテストでのエラー

var vows = require('vows'); 
var assert = require('assert'); 

var boardData = require('../lib/data/BoardData.js'); 

vows.describe('Loading provinces and Boundries for').addBatch({ 
    'version': { 
    '2008E5-1':{ 
     topic: function() { boardData.createBoard("2008E5",this.callback); }, 
     'exists': function (err,provs,bounds) { assert.ok(true); } 
    }/*, 
    '2008E5-2': { 
     topic: function() { boardData.createBoard("2008E5",this.callback); }, 
     'exists': function (err,provs,bounds) { assert.ok(true); } 
    }*/ 
    } 
}).export(module); 

このコードを実行すると、予想される結果が得られます。 注釈付きセクションのコメントを外すと、2つは正常に終了しましたが、console.log( "foo")を置くことで2番目のものが2回見つかることがあります。適切な場所に保管してください。

·· ✓ OK » 2 honored (0.067s) 
· 
✗ Errored » callback not fired 
    in version 2008E5-1 
    in Loading provinces and Boundries for 
    in undefined 

これは私が何かを見逃しているか何かの理解が不足している必要がありますが、私はそれを理解できません。誰でも助けてくれますか?前もって感謝します!

+0

boardData.createBoardはコールバックを呼び出していないように見えます。 –

+0

コード内にコメントがあるときに呼び出す。単純なconsole.log( "foo")を使用する。コールバックの中にはそれが表示されます。 '存在する':function(エラー、証明、境界){console.log( "foo"); assert.ok(true); } –

答えて

0

「バージョン」キーにはトピックがありません。自分の話題が必要だと思う。必要に応じて、その下にサブトピックをネストすることができます。

または、実行するテストを正確に確認するには、--specオプションを指定して実行してください。

vows --spec 

または

./node_modules/vows/bin/vows --spec 
0

boardData.createBoard他にも非同期呼び出しがありますが、これは許可されていません(セットアップで行う必要がありますか?)。証拠はなく、ただの実験。