Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 复叶茉莉_Javascript_Angularjs_Unit Testing_Jasmine - Fatal编程技术网

Javascript 复叶茉莉

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',

我试图测试我的阵列(存储)是否还有一个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:Object{status:0}


ctrl.provider.priceStorage()
是一个承诺

承诺以这种方式进行测试:

  ctrl.provider.priceStorage().then(function (result) {
    expect(result).toEqual(...);
  });
  $rootScope.$digest();

用于展平规范中的承诺链。

谢谢,但我知道,问题是我的承诺中没有发生任何事情,即使我写了类似于expect(result)的东西;我没有结果,没有错误,什么都没有…@user3703539使用$rootScope.$digest()在规范中触发$q链。