Estoy tratando de escribir algunas pruebas con Jasmine, pero ahora tengo un problema si hay algún código que es asincrónico en beforeEach
.¿Cómo probar un método en Jasmine si el código en `beforeEach` es asíncrono?
El código de ejemplo se parece a:
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');
});
});
Se puede ver, en el beforeEach
, quiero obtener algunos datos de forma remota, y asignarlo a la data
de forma asíncrona.
Pero en el test1
, cuando intento para verificar:
expect(data).toBe(something);
Los datos son undefined
, porque getSomeDataFromRemote
no ha terminado todavía.
¿Cómo corregirlo?
Sé que Mocha puede hacer una configuración asíncrona, pero estoy menos familiarizado con Jasmine. ¿Ha intentado utilizar las [construcciones de especificación asíncrona] (https://github.com/pivotal/jasmine/wiki/Asynchronous-specs) en su 'beforeEach'? Los documentos solo muestran que se usan dentro de las especificaciones, pero también pueden funcionar en 'beforeEach'. –