编写异步Vows.js测试时出错

时间:2012-01-22 19:21:26

标签: javascript node.js vows

我一直在使用节点并使用誓言来编写测试。

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);

当我运行此代码时,我得到了预期的结果。 当我取消注释注释部分时,注意到两个已成功完成,但是可以通过放置console.log(“foo”)来发现第二个是第二个。在适当的位置。

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

这一定是我缺少某些东西或缺乏对某些东西的理解,但我无法弄明白。谁能帮我?提前谢谢!

2 个答案:

答案 0 :(得分:0)

boardData.createBoard包含其他是异步调用,显然是不允许的(应该在设置中完成?)。没有证据,只是实验。

答案 1 :(得分:0)

我担心“版本”键没有主题。我认为它需要一个自己的主题。如果需要,您可以在其下嵌套子主题。

或者,使用--spec选项运行它以确切了解正在运行的测试。

vows --spec

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