来自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"但是,串在一起的主题似乎遵循不同的规则。他们似乎只传递了一个论点。这里有一个来自誓言网站的例子:
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)这样的arugments,而是(stat)。
有人知道为什么会这样吗?
发布于 2012-03-02 04:01:19
根据我的经验,在调用子主题时,Vows会省略err参数。
这可能解决了要求嵌套主题接受每个额外父级的每个err参数的问题。你不会想要这种情况的:
topic: (err, topic1, err, topic2, err, topic3)相反,只要使用无错误的参数即可。
topic: (topic1, topic2, topic3)这有点令人困惑,因为Vows会自动截获非空的err参数,并且无法通过测试。所以无论如何都不能使用err参数。
发布于 2013-08-02 11:58:06
所以无论如何你都不能使用
参数。
誓言是如何确定这个论点是错误的。
是按名字写的吗?或者总是null- first -参数,这在不将err作为第一个参数返回的情况下可能不起作用?
谢谢,
https://stackoverflow.com/questions/7293099
复制相似问题