Vows.js – 参数数量this.callback返回主题与誓言

从誓言网站:“当这个callback被调用时,它将它收到的参数逐个传递给testing函数,就好像这些值是由主题函数本身返回的。 换句话说,如果我们使用请求库来处理我们的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 

所以,而不是像(err,stat)这样的第二个主题,它只是得到(stat)。

有人知道这是为什么吗?

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

这可能解决了要求嵌套主题将每个额外的父项都带到每个err参数的问题。 你不想要这样的情况:

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

相反,只要使用非err参数。

 topic: (topic1, topic2, topic3) 

这有点令人困惑,因为Vows会自动拦截一个非空的err参数并且不能通过testing。 所以你永远无法使用err参数。

所以你永远无法使用err参数。

誓言如何确定论证是错误的。

这是名字吗? 或者总是使用null-first-argument,在不返回err的情况下可能不起作用。

谢谢,