Vows.js - this.callback返回主题与誓言的args数

时间:2011-09-03 12:25:07

标签: node.js vows

从vows站点:“当调用this.callback时,它会逐一将它收到的参数传递给测试函数,就像主题函数本身返回的值一样。”换句话说,如果我们使用请求库来处理我们的http请求,我们的主题和誓言可能如下所示:

'When I make a valid request':
  topic: ->
    request
      uri: someURL
      method: "GET"
    , @callback
    return undefined # necessary because I'm using coffeescript

  "It should respond with a 200":
    (err, resp, body) ->
      assert.equal resp.statusCode, "200"

但是,串联起来的主题似乎遵循不同的规则。他们似乎只是传递了一个论点。以下是Vows网站的一个例子:

topic: function () {
  fs.stat('~/FILE', this.callback);
  }, 
  'after a successful `fs.stat`': {
    topic: function (stat) {
      fs.open('~/FILE', "r", stat.mode, this.callback);}, etc

所以不是第二个话题得到像(错误,统计)那样的争论,而是获得(统计)。

有人知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

根据我的经验,Vows在调用子主题时省略了err参数。

这可能解决了要求嵌套主题在每个额外父级中使用每个err参数的问题。你不希望出现这种情况:

topic: (err, topic1, err, topic2, err, topic3)

相反,只需使用非错误的参数。

topic: (topic1, topic2, topic3)

这有点令人困惑,因为Vows会自动拦截非null err参数并且无法通过测试。所以你永远无法使用err参数。

答案 1 :(得分:0)

  
    

所以你永远无法使用错误的参数。

  

Vows如何确定参数是错误的。

是名字吗?或者总是使用null-first-argument,这可能不适用于没有作为第一个arg返回错误的情况?

谢谢,