【发布时间】:2016-04-22 22:52:54
【问题描述】:
我尝试使用 Jasmine 测试我的阵列(存储)是否还有一个项目。我有多个承诺链,但我无法进入第一个,承诺没有任何反应(.then)。
这是我的测试:
beforeEach(inject(function ($state, $controller, $rootScope, $q) {
state = $state.get('app.provision_requests_create');
ctrl = $controller('ProvisionRequestsCreateCtrl', {
$scope: $rootScope.$new(),
provider: {
data: {
priceStorage: function () {
return $q(function (resolve) {
resolve({ data: [] });
});
}
}
}
});
}));
describe("should test add Volume", function() {
it('should remove volume properly ', function () {
ctrl.createVolume(volume);
ctrl.provider.priceStorage().then(function(){
console.log('ok');
});
});
这是我的功能:
_this.provider = provider.data;
_this.instance.additional_values.storage = [];
_this.createVolume = function (volume) {
var newvol = angular.copy(volume);
//reset input and select
angular.copy({},volume);
return _this.provider.priceStorage(newvol.kind).then(function (resp) {
...
return _this.provider.priceSnapshot();
})
.then(function (resp) {
_this.instance.additional_values.storage.push(newvol);
});
};
当我 console.log ctrl.provider.priceStorage() 我有这个
d{$$state: Object{status: 1, value: Object{data: ...}}}
当我 console.log ctrl.createVolume() 时,我有这个
d{$$state: 对象{状态: 0}}
【问题讨论】:
标签: javascript angularjs unit-testing jasmine