1

QUnit のこつをつかもうとして、いくつかの問題を実行しています: 次のテストを実行すると:

   test("Trying QUnit", function() {
            expect(1);
            var div = $('<div>')
            div.addClass('field-box');
            same(fieldBox(), div, 'Expected ' + div + ' was: ' + fieldBox());
        });
    });

    function fieldBox() {
        return $('<div class="field-box">');
    }

メッセージが表示されます:

Expected [object Object] was: [object Object]
Expected:   
[
  <div class="field-box"></div>
]

これは、何が間違っているかについてのヒントを私に与えません。代わりに、クラス "field-boxing" を持つ div を返すように fieldBox-method を変更すると、次のより説明的なメッセージが表示されます。

 Expected [object Object] was: [object Object]
Expected:   
[
  <div class="field-box"></div>
]
Result: 
[
  <div class="field-boxing"></div>
]
Diff:   
 [
   <div class="field-box"></div>
class="field-boxing"></div>
 ] 

Diff が表示されなかったので、最初のテストでは実際には何も問題はなかったと思います。それでも失敗しました、なぜですか?

4

2 に答える 2

0

DOM オブジェクトは、same (現在は deepEquals であり、same は非推奨) を使用している場合でも、コンテンツではなく ID によって比較されます。

.html() を使用すると、実際のコンテンツのテキスト表現を比較できます。

于 2011-08-14T22:29:13.810 に答える