模拟Angular中的承诺:'那么'不开火
Mocking up a promise in Angular: 'then' not firing?
我试图在一些Angular单元测试中模拟一个承诺。
我不明白为什么下面的then()
部分永远不会启动。有人能提出建议吗?
beforeEach(inject(function ($controller, $rootScope, $q) {
scope = $rootScope.$new();
var mockFactory = {
getData: function() {
var deferred = $q.defer();
deferred.resolve({data: [1,2,3], widget: null});
return deferred.promise;
}
};
mockFactory.getData()
.then(function (response) {
console.log('mockFactory', response);
});
}));
我不确定这个问题是否相关。
$rootScope.$apply()
来强制执行它。
你的例子有点刺耳,而且不完整。在你还承诺之前,你也在解决这个问题。我不知道你到底想做什么,我也不会猜测。但我认为下面这样的东西会得到你想要的console.log。
beforeEach(inject(function ($controller, $rootScope, $q) {
scope = $rootScope.$new();
var deferred;
var mockFactory = {
getData: function() {
deferred = $q.defer();
return deferred.promise;
}
};
mockFactory.getData()
.then(function (response) {
console.log('mockFactory', response);
});
deferred.resolve({data: [1,2,3], widget: null});
$rootScope.$apply();
}));
我做了一个单元测试angularjs承诺的工作示例
它在这里:plunkr
我在projectpoppytock上写了一篇关于这个主题的博客
干杯!祝你好运,答应嘲笑。
相关文章:
- 点击不'似乎没有开火
- JavaScript承诺-无法读取属性'那么'的未定义
- 强制 $scope.$watch 只开火一次
- 带有CSS的数据属性就没那么有用了
- 如果 JS 中的函数是一流的,那么在定义它们之前允许调用它们是什么
- 如果图像标记是用javascript编写的,并且需要用户输入,那么图像不会随页面加载吗
- extjs关闭事件不'不要开火
- 初学者异步JS-我曾经使用过“;那么“;每次我都想要价值
- Safari扩展中的注入脚本;不要在Youtube上开火
- 如何在Meteor中使每个环境都不那么不同
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- KeyDown不会'按住时不能连续开火
- 替换内联并不像看上去那么简单
- Raphael JS事件未开火
- JQuery窗口调整大小;不要开火
- 谷歌地球回调未开火
- 强制jQuery Deferred等待Ajax在“”中完成;那么“;处理程序
- 如何让我的条件陈述不那么难看
- 在控制器中创建StandardListItem并在赢得的项目上按下事件'不要开火
- 模拟Angular中的承诺:'那么'不开火