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?