我必须为我的测试加载一些种子数据。在测试开始运行之前,我很难确保种子数据已完全加载。
在beforeAll块中,我正在调用我为我的API编写的适配器,它清除任何数据,加载指定的种子数据文件,然后运行从量角器测试文件传入的回调。
我不能在回调中包含测试用例(这似乎是重构承诺的类似阻塞问题)或者量角器不能识别它们。
有人建议我可以确保我的API在测试开始之前已经成功播种了吗?
谢谢!
答案 0 :(得分:3)
如果您在量角器中使用Jasmine 2.1或更高版本,则可以使用seedMyDataAsync()
中的done()功能。
因此,如果你有一个名为beforeAll( function(done) {
seedMyDataAsync(done);
});
的函数将回调函数作为参数,你可以做一些简单的事情:
done()
Jasmine 2.0引入了beforeAll()
功能,但在Jasmine 2.1之前,onPanResponderRelease
无法使用{。}}。
来自文档:
调用beforeAll,afterAll,beforeEach,afterEach,并且它可以采用在异步工作完成时应该调用的可选单个参数。
默认情况下,jasmine将等待5秒钟,以便在导致超时失败之前完成异步规范。如果在调用done之前超时到期,则当前规范将被标记为失败,并且套件执行将继续,就像调用done一样。