Sto provando a scrivere alcuni test con Jasmine, ma ora ho un problema se ci sono dei codici asincroni in beforeEach
.Come testare un metodo in Jasmine se il codice in `beforeEach` è asincrono?
Il codice di esempio si presenta come:
describe("Jasmine", function() {
var data ;
beforeEach(function(){
console.log('Before each');
getSomeDataFromRemote(function(res){
data = res;
});
});
it("test1", function() {
expect(data).toBe(something);
console.log('Test finished');
});
});
Si può vedere, nel beforeEach
, voglio ottenere alcuni dati da remoto e assegnarlo al data
in modo asincrono.
Ma nel test1
, quando provo a verificare:
expect(data).toBe(something);
I dati sono undefined
, perché getSomeDataFromRemote
non ha ancora finito.
Come ripararlo?
So che Mocha può eseguire l'installazione asincrona, ma ho meno familiarità con Jasmine. Hai provato a utilizzare [costrutto async spec] (https://github.com/pivotal/jasmine/wiki/Asynchronous-specs) nel tuo 'beforeEach'? I documenti mostrano solo che vengono usati all'interno delle specifiche, ma potrebbero funzionare anche in 'beforeEach'. –