Javascript 复叶茉莉
我试图测试我的阵列(存储)是否还有一个Jasmine项目。我有多个承诺链,但我不能进入第一个,承诺(.then)没有发生任何事情 这是我的测试:Javascript 复叶茉莉,javascript,angularjs,unit-testing,jasmine,Javascript,Angularjs,Unit Testing,Jasmine,我试图测试我的阵列(存储)是否还有一个Jasmine项目。我有多个承诺链,但我不能进入第一个,承诺(.then)没有发生任何事情 这是我的测试: beforeEach(inject(function ($state, $controller, $rootScope, $q) { state = $state.get('app.provision_requests_create'); ctrl = $controller('ProvisionRequestsCreateCtrl',
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:Object{status:0}
ctrl.provider.priceStorage()
是一个承诺
承诺以这种方式进行测试:
ctrl.provider.priceStorage().then(function (result) {
expect(result).toEqual(...);
});
$rootScope.$digest();
用于展平规范中的承诺链。谢谢,但我知道,问题是我的承诺中没有发生任何事情,即使我写了类似于expect(result)的东西;我没有结果,没有错误,什么都没有…@user3703539使用$rootScope.$digest()在规范中触发$q链。