best practice per testare le app di backbone.js con jasmine?

5

Recentemente ho iniziato a utilizzare jasmine per eseguire test di unità javascript. amandolo così lontano.

uno dei progetti su cui sto lavorando è un plugin per backbone.js. dato che il backbone è un framework in stile mvc per javascript, gran parte di ciò che fa è la manipolazione della vista, in genere attraverso jquery. il mio plugin non fa eccezione a questo. Ho diverse cose da manipolare in elementi html, attraverso le viste backbone.

in questo momento, sto facendo quello che potrebbe essere qualcosa di terribile per farne un valore con il gelsomino. Ecco un esempio di come stendo i miei test:

describe("conventionBindings", function(){
  beforeEach(function(){
    this.model = new AModel({name: "Some Name"});
    this.view = new AView({model: this.model});
    this.view.render();
  });

  afterEach(function(){
    this.view.close();
  });

  describe("... that thing it does ... ", function(){
    it("... stuff .... ", function(){
    });
  });
});

I bit importanti qui, sono il beforeEach e afterEach. noti che sto chiamando il metodo di rendering della mia vista e quindi il metodo di chiusura della mia vista.

ecco cosa fanno questi metodi:

AView = Backbone.View.extend({
  render: function(){
    this.html = $("");
    $("body").append(this.html);
  },

  close: function(){
    this.html.remove();
  }
});

sto specificatamente aggiungendo questo metodo "vicino" alla mia vista per i test, perché se non lo faccio, allora la pagina di gelsomino che sto visualizzando quando eseguo il server di test jasmine mostrerebbe gli input che ho ve aggiunto al corpo della pagina.

quindi ... ecco le mie domande:

questa è una cosa orribile da fare? dovrei provare le mie visualizzazioni e le manipolazioni degli elementi html in un modo diverso dall'aggiunta di elementi al corpo della pagina?

in questo momento non ho bisogno di eseguire questi test in nessun tipo di server CI, ma se lo faccio, che tipo di problemi mi imbatterò? come posso scrivere migliori test al gelsomino, in modo da poter testare il mio plug-in backbone in un server CI, sapendo che il plugin deve manipolare gli elementi html durante il test?

    
posta Derick Bailey 25.07.2011 - 18:12
fonte

1 risposta

2

Ho trovato questo articolo una grande risorsa per iniziare a testare il gelsomino.

Test delle applicazioni Backbone con Jasmine e Sinon

Nel suo articolo aggiunge appunto elementi alla pagina usando setFixtures. Quindi un metodo simile ed è il modo in cui ho usato in passato. Per quanto riguarda le migliori pratiche, potremmo voler vedere come si sentono gli altri riguardo a questo metodo. Non riesco a pensare a un altro modo per eseguire il rendering senza metterlo sulla pagina.

    
risposta data 25.07.2011 - 18:24
fonte

Leggi altre domande sui tag