强制量angular器等待种子数据加载

我必须为我的testing加载一些种子数据。 我很难确定在testing开始运行之前种子数据已经完全加载。

在beforeAll块中,我调用我为API编写的适配器,清除所有数据,加载种子数据的指定文件,然后运行从量angular器testing文件传入的callback。

我不能在callback中包含testing用例(这似乎是重构承诺会出现类似的阻塞问题),或者量angular器不能识别它们。

任何人都可以build议一种方法,我可以确保我的API已经成功种子在testing开始之前?

谢谢!

如果您在量angular器中使用Jasmine 2.1或更高版本,则可以使用beforeAll中的done()函数。

所以,如果你有一个叫做seedMyDataAsync()的函数将一个callback函数作为一个参数,你可以做一些简单的事情:

 beforeAll( function(done) { seedMyDataAsync(done); }); 

done()函数是在Jasmine 2.0中引入的,但是直到Jasmine 2.1才能用于beforeAll()

从文档:

调用beforeAll,afterAll,beforeEach,afterEach之后,它可以采用一个可选的单个参数,当asynchronous工作完成时应该调用该参数。

默认情况下,jasmine会在超时失败之前等待asynchronous规范完成5秒。 如果在调用完成之前超时过期,则当前的规范将被标记为失败,并且随着被调用,套件执行将继续。