2

vows サイトから: 「this.callback が呼び出されると、トピック関数自体によって値が返されたかのように、受け取った引数が 1 つずつテスト関数に渡されます。」つまり、リクエスト ライブラリを使用して 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"

しかし、まとまりのあるトピックは、異なるルールに従っているようです。それらは 1 つの引数だけを渡すようです。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

したがって、2 番目のトピックが (err, stat) のような引数を取得する代わりに、(stat) を取得するだけです。

なぜこれが事実なのか知っている人はいますか?

4

2 に答える 2

1

私の経験では、Vows はerrサブトピックを呼び出すときに引数を省略します。

errこれにより、ネストされたトピックが追加の親ごとにすべての引数を取る必要があるという問題がおそらく解決されます。この状況は望ましくありません。

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

代わりに、エラーでない引数を使用してください。

topic: (topic1, topic2, topic3)

Vows は自動的に非 nullerr引数をインターセプトしてテストに失敗するため、これはやや混乱します。errしたがって、とにかく引数を使用することはできません。

于 2012-03-01T20:01:19.027 に答える