2012-06-07 7 views
8

Pracuję nad aplikacją Backbone.js i dodając testy z Jasmine & Sinon miałem problemy z określeniem widoczności niektórych elementów DOM: niektóre z nich zostały wykryte jako niewidoczne w testach, podczas gdy mogłem je poprawnie zobaczyć w mojej aplikacji.Nie mogę przetestować widoczności elementów renderowanych w widoku szkieletowym

utworzonego mały przykład, który replikuje się problem, ten sam test przeprowadza się dwa razy w dwóch zestawów elementów:

  • pierwszy zestaw występuje bezpośrednio SpecRunner.html
  • drugi został wydanego w widoku Backbone

Test samo stosuje jQuery.is(':visible') (przez jaśmin, jQuery .toBeVisible()), aby wiedzieć, czy elementy są widoczne lub nie. Przechodzi dla pierwszego zestawu, nie dla drugiego.

dzieliłem kod tutaj jako projekt github: https://github.com/maximevaly/3789_js

Chyba czegoś zapomniał, a może niewłaściwie bibliotekę, ale nie mogę umieścić mój palec na nim, więc jeśli masz pojęcia ... :)

Dzięki! Maxime

Odpowiedz

8

Problem polega na tym, że Twój StuffView.el nie jest dołączony do DOM, dlatego zawsze jest niewidoczny. Prawdopodobnie błędnie rozumiesz parametry className i tagName: nie są one używane jako selektory, ale do skonstruowania zupełnie nowego elementu.

Naprawia drugi test.

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

Alternatywnie można dołączyć do widoku DOM ręcznie w teście

$("body").append(this.view.el); 
+0

Wiedziałem, że zrobiłem coś złego, dzięki! :) –

Powiązane problemy