How to spy on anonymous function using Jasmine

前端 未结 2 2027
长发绾君心
长发绾君心 2021-02-10 04:56

I\'m using Jasmine to test my angular application and want to spy on an anonymous function. Using angular-notify service https://github.com/cgross/angular-notify, I want to know

相关标签:
2条回答
  • 2021-02-10 05:01

    You could chain your spy with andCallFake see:

    http://jasmine.github.io/1.3/introduction.html#section-Spies:_andCallFake

        //create a spy and define it to change notify
        notify = jasmine.createSpy().andCallFake(function() {
          return false;
        });
    
        it('should be a function', function() {
            expect(typeof notify).toBe('function');             
        });
    
        controller = createController();
        scope.isValid('name');
        expect(notify).toHaveBeenCalled();
    
    0 讨论(0)
  • 2021-02-10 05:08

    Daniel Smink's answer is correct, but note that the syntax has changed for Jasmine 2.0.

    notify = jasmine.createSpy().and.callFake(function() {
      return false;
    });
    

    I also found it useful to just directly return a response if you only need a simple implementation

    notify = jasmine.createSpy().and.returnValue(false);
    
    0 讨论(0)
提交回复
热议问题