jasmine spyOn angularjs内部方法,例如$filter(‘date’)

前端之家收集整理的这篇文章主要介绍了jasmine spyOn angularjs内部方法,例如$filter(‘date’)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请参阅中的代码

http://jsfiddle.net/2Ny8x/69/

我想知道如何添加另一个间谍来窥探$filter(‘date’)返回的方法,以便我可以验证

expect(something,something).toHaveBeenCalledWith('1234','dd-MMM-yyyy');
你应该能够模拟传递给控制器​​的过滤器,并从这个模拟中返回一个间谍.然后,您可以测试间谍是否正常调用.

例:

describe('MyCtrl',function () {
  var filter,innerFilterSpy,http,scope;

  beforeEach(inject(function ($rootScope,$controller,$http) {
    http = $http;
    innerFilterSpy = jasmine.createSpy();
    filter = jasmine.createSpy().and.returnValue(innerFilterSpy);
    scope = $rootScope.$new();
    controller = $controller('MyCtrl',{
      '$scope': scope,'$http': http,'$filter': filter
    });
  }));

  it('call $filter("date") and test()',function () {
      expect(scope.date).toBe('01-Jan-1970');
      expect(http.get).toHaveBeenCalled();
      expect(filter).toHaveBeenCalledWith('date');
      expect(innerFilterSpy).toHaveBeenCalledWith('1234','dd-MMM-yyyy');
  });
});

猜你在找的Angularjs相关文章