Angularfire - 你如何测试$ watch回调?

时间:2017-01-06 05:47:33

标签: firebase jasmine angularfire

AngularFire有自己的$watch回调方法,可以附加到$firebaseArray的实例。

如果我有类似的话:

$scope.registerAngularFireWatch = function(){
    $scope.angularFireArray.$watch(function(data){
        $scope.myVariable = true;
        $scope.anotherVariable = data;
    });
};

如何编写Jasmine测试以在此实例中触发$watch

1 个答案:

答案 0 :(得分:-1)

您应该模拟$firebaseArray服务并为$watch函数创建一个间谍:

var firebaseArrayMock = function () {
  return {
    $watch: jasmine.createSpy()
  };
};
var controller;
// ...
beforeEach(function () {
  controller = $controller('yourController', {
    $firebaseArray: firebaseArrayMock
  });
});

然后你可以期待它被称为:

expect(firebaseArrayMock.$watch).toBeCalled();