在我看来,我有加载动画,直到我收到来自 API 的响应。
//Displayed before we've received API response
<p ng-if="vm.vehicles == null">Loading ...</p>
//Displayed once we received response for the API
<table ng-if="vm.vehicles">
<tr ng-repeat="vehicle.vm.vehicles">...</tr>
为了进行测试,我使用了$httpBackend
Angular 模块。像这样的东西:
$httpBackend.whenGET('api/vehicles').respond({vehicles: [...]});
问题
我想写一个测试来检查加载动画是否显示。
我试过了:
expect(ptor.isElementPresent(By.cssContainingText('p', 'Loading'))).to.eventually.be.true;`
但我没有通过。所以我认为我需要有条件地延迟我从 $httpBackend 得到的响应。
我发现这篇博文http://endlessindirection.wordpress.com/2013/05/18/angularjs-delay-response-from-httpbackend/
但是,插入该配置方法使我的所有测试都失败了(我认为是因为模板没有及时加载),它会延迟所有响应,所以这并不是我真正需要的。
那么我怎样才能延迟那个电话的响应呢?理想情况下,我只想为该测试延迟它。