【发布时间】:2017-05-02 22:53:55
【问题描述】:
我的控制器中有以下功能:
function putActivities () {
var promises = [];
view.activities.forEach(function (activity) {
promises.push(API.putActivities({activity: activity}).$promise);
});
$q.all(promises).then(function () {
view.finished = true;
});
}
其中 API 是一个 $resource。该方法通过以下sn-p测试:
describe('putActivities', function() {
beforeEach(function() {
view.activities = ['hello'];
spyOn(API, 'putActivities').and.callFake(function () {
return {
$promise: q(function () {})
}
});
});
it('view is finished after putting activities', function() {
view.putActivities();
expect(view.finished).toEqual(true);
});
});
由于某种原因,$q.all 永远不会解析,view.finished 永远不会设置为 true。有谁知道为什么会发生这种情况以及我该如何解决?
【问题讨论】:
标签: angularjs unit-testing jasmine angular-promise