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

时间:2016-01-19 21:18:33

标签: angularjs node.js protractor integration-testing

我必须为我的测试加载一些种子数据。在测试开始运行之前,我很难确保种子数据已完全加载。

在beforeAll块中,我正在调用我为我的API编写的适配器,它清除任何数据,加载指定的种子数据文件,然后运行从量角器测试文件传入的回调。

我不能在回调中包含测试用例(这似乎是重构承诺的类似阻塞问题)或者量角器不能识别它们。

有人建议我可以确保我的API在测试开始之前已经成功播种了吗?

谢谢!

1 个答案:

答案 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一样。