我正在做一些使用角度承諾的茉莉花測試,並有一個與時間有關的問題。在這裏找到一個答案Unit-test promise-based code in Angular,但需要澄清這是如何工作的。鑑於then
方法總是以異步方式處理,下面的測試如何保證通過。是否存在expect
會在正在執行的then
塊之前運行並且在值被分配之前運行期望的風險。或者...摘要循環保證在預期運行之前分配值。意思是說,摘要循環將有效地像阻塞調用一樣,保證在代碼被允許繼續之前所有的承諾都被解決。使用承諾的茉莉花異步測試
function someService(){
var deferred = $q.defer();
deferred.resolve(myObj);
return deferred.promise;
}
it ('testing promise', function() {
var res;
var res2;
someService().then(function(obj){
res = "test";
});
someService().then(function(obj){
res2 = "test2";
});
$rootScope.$apply();
expect(res).toBe('test');
expect(res2).toBe('test2');
});
很好的答案。謝謝! – user4131376 2014-10-11 14:45:07