Ich kann die Sichtbarkeit von Elementen, die in meiner Backbone-Ansicht gerendert wurden, nicht testen

8

Ich arbeite an einer Backbone.js-Anwendung und beim Hinzufügen von Tests mit Jasmine & amp; Sinon Ich hatte Probleme, die Sichtbarkeit einiger DOM-Elemente zu bestimmen: einige von ihnen wurden in den Tests als nicht sichtbar erkannt, während ich sie in meiner Anwendung richtig sehen konnte.

Ich habe ein kleines Beispiel erstellt, das das Problem repliziert. Derselbe Test wird zweimal für zwei Sätze von Elementen ausgeführt:

  • die erste Menge ist direkt in SpecRunner.html
  • vorhanden
  • der zweite wurde als Backbone-Ansicht gerendert

Der Test selbst verwendet jQuery.is(':visible') (über Jasmine-jquery's .toBeVisible() ), um zu wissen, ob Elemente sichtbar sind oder nicht. Es gilt für den ersten Satz, nicht für den zweiten.

Ich habe den Code hier als Github-Projekt geteilt: Ссылка

Ich glaube, ich habe etwas vergessen, oder vielleicht eine Bibliothek missbraucht, aber ich kann nicht meinen Finger darauf legen, wenn Sie irgendeine Ahnung haben ...:)

Danke! Maxime

    
Maxime Valy 07.06.2012, 12:00
quelle

1 Antwort

8

Das Problem ist, dass Ihr StuffView.el nicht an DOM angehängt ist und daher immer nicht sichtbar ist. Vermutlich missverstehen Sie die Parameter className und tagName : Sie werden nicht als Selektoren verwendet, sondern um ein brandneues Element zu konstruieren.

Dies behebt den zweiten Test.

%Vor%

Alternativ können Sie die Ansicht im Test manuell an DOM anhängen

%Vor%     
Yaroslav 07.06.2012, 16:54
quelle