John Resigの例を調べながら、Qunitを使用して彼のアサーションの例を書き直したいと思いました。#55に到達するまで、すべてがうまくいきました。Johnsの例では、テスト「c」(7行目)は「undefined」に等しくなければなりません。私の例のQunitによれば、「c」は8に等しくなければなりません。「c」テストをconsole.logsで囲みましたが、どちらも未定義を生成します。これがjsbinです。誰かが何が起こっているのか説明できますか?わからない...
jsbinにアクセスできない場合に備えて、次のコードを使用します。
var a = 5;
function runMe(a){
'use strict';
test('a', function(){
strictEqual(a, 6, 'Check the value of a.');
});
function innerRun(){
test('b', function(){
strictEqual(b, 7, 'Check the value of b.');
});
console.log(c);
test('c', function(){
//the problem seems to be here
strictEqual(c, 8, 'Check the value of c.');
});
console.log(c);
}
var b = 7;
innerRun();
var c = 8;
}
runMe(6);
for ( var d = 0; d < 3; d++ ) {
setTimeout(function(){
test('d', function(){
strictEqual(d, 3, 'Check the value of d.');
});
}, 100);
}
ただし、「c」テスト内からconsole.logを配置すると、ログアウトします8。