8

私はBackbone.jsアプリケーションに取り組んでおり、JasmineとSinonでテストを追加しているときに、いくつかのDOM要素の可視性を判断するのに問題がありました.それらのいくつかは、アプリケーションで正しく見ることができたのに、テストで見えないと検出されました. .

問題を再現する小さな例を作成しました。2 つの要素セットに対して同じテストが 2 回実行されます。

  • 最初のセットは SpecRunner.html に直接存在します
  • 2 つ目はバックボーン ビューとしてレンダリングされています

テスト自体は、jQuery.is(':visible')(jasmine-jquery の を介して.toBeVisible()) を使用して、要素が表示されているかどうかを確認しています。2 番目のセットではなく、1 番目のセットに合格します。

ここでコードを github プロジェクトとして共有しました: https://github.com/maximevaly/3789_js

私は何かを忘れたか、おそらくライブラリを誤用したと思いますが、指を置くことはできないので、何か手がかりがあれば... :)

ありがとう!マキシム

4

1 に答える 1

9

問題は、StuffView.elDOM に接続されていないため、常に表示されないことです。classNameおそらくandパラメーターを誤解しているでしょうtagName: これらはセレクターとしてではなく、まったく新しい要素を構築するために使用されます。

これにより、2 番目のテストが修正されます。

el : "div.container",
//tagName : 'div',
//className : 'container',

または、テストでビューを DOM に手動でアタッチすることもできます

$("body").append(this.view.el);
于 2012-06-07T16:54:11.943 に答える