Подтвердить что ты не робот

В чем разница между createpy и creatpyobj

Я использовал в своем коде как.

return $provide.decorator('aservice', function($delegate) {
            $delegate.addFn = jasmine.createSpy().andReturn(true);
            return $delegate;
        });

В том, что делает createSpy? могу ли я изменить вызовы createSpy на вызовы createpyobj.

Используя createSpy, мы можем создать один метод/метод mocks. Createspyobj может выполнять несколько функций mocks. Я прав?

Какая разница.

4b9b3361

Ответ 1

jasmine.createSpy может использоваться, когда нет функции для шпионажа. Он будет отслеживать вызовы и аргументы типа 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);
  });
});