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的情况下可能不起作用。
谢谢,