С сайта обетов: «Когда вызывается 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
Таким образом, вместо того, чтобы вторая тема получала такие дополнения, как (err, stat), она просто получает (stat).
Кто-нибудь знает, почему это так?