3

我一直在使用 node 并使用 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

这一定是我遗漏了什么或缺乏对某事的理解,但我无法弄清楚。谁能帮我?提前致谢!

4

2 回答 2

0

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

于 2012-01-24T04:19:37.730 回答
0

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

或者,使用--spec选项运行它以查看正在运行的测试。

vows --spec

或者

./node_modules/vows/bin/vows --spec
于 2012-03-01T21:40:40.860 回答