2012-06-07 4 views
8

Sto lavorando a un'applicazione Backbone.js e mentre aggiungo test con Jasmine & Sinon ho avuto problemi a determinare la visibilità di alcuni elementi DOM: alcuni di essi dove sono stati rilevati come non visibile nei test mentre potevo vederli correttamente nella mia applicazione.Non riesco a testare la visibilità degli elementi visualizzati nella mia vista backbone

ho creato un piccolo esempio che replica il problema, lo stesso test viene eseguito due volte su due serie di elementi:

  • la prima serie è presente direttamente in SpecRunner.html
  • il secondo è stato reso come una vista dorsale

La prova stessa sta utilizzando jQuery.is(':visible') (via del .toBeVisible() gelsomino-jquery) per sapere se gli elementi sono visibili o meno. Passa per il primo set, non per il secondo.

ho condiviso il codice qui come progetto github: https://github.com/maximevaly/3789_js

Credo di aver dimenticato qualcosa, o forse abusato di una libreria, ma non riesco a mettere il dito su di esso quindi se avete qualsiasi indizio ... :)

Grazie! Maxime

risposta

8

Il problema è che il tuo non è collegato al DOM, quindi non è sempre visibile. Probabilmente fraintendi i parametri className e tagName: non sono usati come selettori, ma per costruire un elemento nuovo di zecca.

Questo corregge il secondo test.

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

In alternativa, è possibile collegare il fine di DOM manualmente nel test

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

sapevo che ho fatto qualcosa di sbagliato, grazie! :) –