私の見解では、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>
テストを行うために、$httpBackendAngular モジュールを使用します。このようなもの:
$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/
ただし、その構成メソッドを挿入すると、すべてのテストが失敗し (テンプレートが時間内に読み込まれないためだと思います)、すべての応答が遅延するため、実際には必要ありません。
では、その 1 回の呼び出しに対する応答を遅らせるにはどうすればよいでしょうか。理想的には、そのテストのためだけに遅らせたいと思います。