0
getTotalSessions(200);

function getTotalSessions(noToExpect){
    it("Tests some stuff", function(done){
        this.timeout(0);
        setTimeout(function(){
            checkSessions("day", function(total){
                assert.strictEqual(total, noToExpect, "Session number mismatch!\n\nReturned: " + total + "\nExpected: " + noToExpect + "\n");
                done();
            });
        }, 3000);
    });
}

私はいくつかの Mocha テストを行っていますが、上記のコードで奇妙なエラーが発生しています。

noToExpect渡す数値に関係なく、アサートする場合ですNaN(ただし、上記は単なる例です。

noToExpectコールバックが使用されているため、それはクロージャーの内側にあると想定しています(ただし、その概念は初めてです)。

そのクロージャー内で渡されたパラメーターを使用する方法はありますか? 簡単なものが足りないだけですか?

編集:noToExpectの最初の行に のログを追加したitところ、200 が記録されたので、数値がit正しく入力されています。

4

1 に答える 1

1

noToExpectJavascript でクロージャがどのように機能するかにより、getTotalSessions 内のネストされた匿名関数のいずれかで使用できるようにする必要があります。アクセス権がないと思わせるような別の種類のエラーが発生していると思います。

いくつかの可能性は次のとおりです。

  1. あなたが考えているものから実行パスを変更している他のコードエラーがあります。
  2. 変数名のどこかにスペルミスがあります。
  3. 他のコードが noToExpect を変更、再定義、またはオーバーライドしています。

あなたがそれを理解したように聞こえますが、他の何かがうまくいかない場合に機能する一般的な概念を示す jsFiddle があります: http://jsfiddle.net/jfriend00/nY6WC/

于 2013-10-03T00:29:59.713 に答える