起初,对于何时使用spyOn,何时使用jasmine.createSpyObj不太清楚。所以对于spy的使用做了一个总结。
1、如何监控方法
spyOn(obj,’method’) // obj.method为方法
注意:这种形式下不会真正的对方法进行调用,若想真正调用方法,参考6
2、如何验证方法被调用
expect(obj.method).toHaveBeenCalled()
3、如何验证方法以特定参数调用
expect(obj.method).toHaveBeenCalledWith(“parameter1”,”parameter2")
4、如何获取方法被调用的次数
obj.method.callCount
5、如何获取方法最后一次调用的参数
obj.method.mostRecentCall.args
6、如何对方法进行真实调用
spyOn(obj,’method’).andCallThrough()
7、如何设置方法的返回值
spyOn(obj,’method’).andReturn(‘hello')
注意:该种方式下仍然不会真正调用方法
8、如何mock对象,并对对象进行监控
objMock = jasmine.createSpyObj(‘obj’,[’set'])
注意:obj不一定真实存在,是一个mock对象,对于该对象可以进行上述操作。