createdpy和createspyobj有什么区别

我在我的代码中使用过。

return $provide.decorator('aservice', function($delegate) {

$delegate.addFn = jasmine.createSpy().andReturn(true);

return $delegate;

});

在那createSpy做什么?我可以将createSpy调用更改为createdpyobj调用。

通过使用createSpy,我们可以创建一个函数/方法模拟。Createspyobj可以执行多个函数模拟。我对吗?

有什么区别。

回答:

jasmine.createSpy没有任何功能可以监视时使用。它将像a那样跟踪调用和参数,spyOn但是没有实现。

jasmine.createSpyObj用于创建可监视一种或多种方法的模拟。它返回一个对象,该对象具有作为间谍的每个字符串的属性。

如果要创建模拟,则应使用jasmine.createSpyObj。查看以下示例。

从Jasmine文档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", "am", "a", "spy");

});

it("allows access to the most recent call", function() {

expect(whatAmI.calls.mostRecent().args[0]).toEqual("I");

});

});

createSpyObj:

describe("Multiple spies, when created manually", 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);

});

});

以上是 createdpy和createspyobj有什么区别 的全部内容, 来源链接: utcz.com/qa/407873.html

回到顶部