我试图用Jasmine写一些测试,但现在有一个问题,如果有一些代码是异步的在beforeEach
。如何测试Jasmine中的方法,如果beforeEach中的代码是异步的?
示例代码看起来像:
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');
});
});
可以看到,在beforeEach
,我想从远程获取一些数据,并将其分配给data
异步。
但在test1
,当我尝试验证:
expect(data).toBe(something);
的数据是undefined
,因为getSomeDataFromRemote
尚未完成。
如何解决?
我知道摩卡可以做异步设置,但我不太熟悉茉莉花。你有没有尝试在你的'beforeEach'中使用[异步规范结构](https://github.com/pivotal/jasmine/wiki/Asynchronous-specs)?文档只显示它们在规范中使用,但它们也可能在'beforeEach'中运行。 –