我正在做一些使用角度承诺的茉莉花测试,并有一个与时间有关的问题。在这里找到一个答案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