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

Firebase Angularfire-如何测试$watch回调?,firebase,jasmine,angularfire,Firebase,Jasmine,Angularfire,AngularFire有自己的$watch回调方法,可以附加到$firebaseArray的实例 如果我有类似于: $scope.registerAngularFireWatch = function(){ $scope.angularFireArray.$watch(function(data){ $scope.myVariable = true; $scope.anotherVariable = data; }); }; 在本例中,如何编写J

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

如果我有类似于:

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

在本例中,如何编写Jasmine测试来触发
$watch

您应该模拟
$firebaseArray
服务,并为
$watch
功能创建间谍:

var firebaseArrayMock = function () {
  return {
    $watch: jasmine.createSpy()
  };
};
var controller;
// ...
beforeEach(function () {
  controller = $controller('yourController', {
    $firebaseArray: firebaseArrayMock
  });
});
然后您可以期望它被调用:

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