angularjs – 创建和创建pyobj之间有什么区别?
发布时间:2020-12-17 08:09:08 所属栏目:安全 来源:网络整理
导读:我在我的代码中使用过。 return $provide.decorator('aservice',function($delegate) { $delegate.addFn = jasmine.createSpy().andReturn(true); return $delegate; }); 那么createSpy在做什么呢?我可以将createSpy调用更改为createdpyobj调用。 通过使用c
我在我的代码中使用过。
return $provide.decorator('aservice',function($delegate) { $delegate.addFn = jasmine.createSpy().andReturn(true); return $delegate; }); 那么createSpy在做什么呢?我可以将createSpy调用更改为createdpyobj调用。 通过使用createSpy,我们可以创建一个函数/方法mocks。 Createspyobj可以做多个功能模拟。我对吗? 会有什么区别?
当没有任何功能进行间谍时,可以使用jasmine.createSpy。它将跟踪一个spyOn的呼叫和参数,但没有实现。
jasmine.createSpyObj用于创建一个可以侦测一个或多个方法的模拟器。它返回一个对象,该对象具有每个作为间谍的字符串的属性。 如果你想创建一个模拟,你应该使用jasmine.createSpyObj。查看下面的例子。 从茉莉花文档http://jasmine.github.io/2.0/introduction.html … createSpy: describe("A spy,when created manually",function() { var whatAmI; beforeEach(function() { whatAmI = jasmine.createSpy('whatAmI'); whatAmI("I","am","a","spy"); }); it("is named,which helps in error reporting",function() { expect(whatAmI.and.identity()).toEqual('whatAmI'); }); it("tracks that the spy was called",function() { expect(whatAmI).toHaveBeenCalled(); }); it("tracks its number of calls",function() { expect(whatAmI.calls.count()).toEqual(1); }); it("tracks all the arguments of its calls",function() { expect(whatAmI).toHaveBeenCalledWith("I","spy"); }); it("allows access to the most recent call",function() { expect(whatAmI.calls.mostRecent().args[0]).toEqual("I"); }); }); createSpyObj: describe("Multiple spies,function() { var tape; beforeEach(function() { tape = jasmine.createSpyObj('tape',['play','pause','stop','rewind']); tape.play(); tape.pause(); tape.rewind(0); }); it("creates spies for each requested function",function() { expect(tape.play).toBeDefined(); expect(tape.pause).toBeDefined(); expect(tape.stop).toBeDefined(); expect(tape.rewind).toBeDefined(); }); it("tracks that the spies were called",function() { expect(tape.play).toHaveBeenCalled(); expect(tape.pause).toHaveBeenCalled(); expect(tape.rewind).toHaveBeenCalled(); expect(tape.stop).not.toHaveBeenCalled(); }); it("tracks all the arguments of its calls",function() { expect(tape.rewind).toHaveBeenCalledWith(0); }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |