Sono interessato a come a livello globale prendere in giro il selettore di file nel browser. In particolare, sono più interessato a farlo in Firefox ma preferirei una soluzione generale.Come si prende in giro il File Picker nel browser per il test dell'unità?
Mi interessa solo impedire la visualizzazione della finestra di selezione del file. Non ho bisogno di essere in grado di affermare che è stato aperto. Il problema è che ho dei test unitari per il codice JavaScript che aprono il selettore di file. Quando si apre la finestra di dialogo, interrompe l'esecuzione della suite di test.
Una situazione di esempio è che sto testando il metodo onRender
di Backbone.View
. Questo metodo esegue il rendering di una sottoview, che aprirà il selettore di file al momento del rendering. Dal momento che non sto testando direttamente questa sottoview, preferirei non deridere porzioni del suo comportamento quando sono interessato solo a testare unitamente un'altra parte del metodo onRender
.
Esempio:
//Test file
it("should do something", function() {
var view = new App.Views.SomeView();
spyOn(view.modelBinder, "bind");
view.render();
expect(view.modelBinder.bind).toHaveBeenCalled();
});
//View file
onRender : function() {
this.modelBinder.bind(this.el, this.model);
this.$("#thing").html(this.subview.render().el); //This line has a side effect that opens file picker
}
In sostanza, non voglio prendere in giro in modo esplicito il comportamento che provoca il selettore file per essere aperto perché non è ciò che mi interessa in fase di test qui. Ciò renderà la suite di test molto più fragile e difficile da mantenere.
Utilizzo del driver di test js? – leeand00
Fammi un favore e aggiungi il test unitario e commenta la riga in cui viene chiamata la funzione che lo visualizza. – leeand00
Aggiunti codice e spiegazione della situazione. –