从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
所以不是第二个话题得到像(错误,统计)那样的争论,而是获得(统计)。
有人知道为什么会这样吗?
答案 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返回错误的情况?
谢谢,