Как сбросить объект Jasmine Spy? - PullRequest
0 голосов
/ 06 мая 2020

Не удалось найти документацию для сброса объекта Jasmine Spy. Если есть лучший способ использования шпионских объектов, пожалуйста, предложите.

// spec.js
import { mockService } from "./mockService"; // mockService = jasmine.createSpyObj(...)

describe('test', () => {
  beforeEach(function () {
    // NOTE: Following don't work

    // mockService.reset();
    // mockService.calls.reset();
    // mockService.method.calls.reset();
  });

  it('a', () => {
    mockService.fn();
    expect(mockService.fn).toHaveBeenCalledTimes(1);
  });

  it('b', () => {
    mockService.fn();
    expect(mockService.fn).toHaveBeenCalledTimes(1);
  });
});

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Он должен работать должным образом.

Например,

const service = {
  fn() {},
};

const mockService = jasmine.createSpyObj(service, 'fn');

describe('test', () => {
  beforeEach(function () {
    mockService.fn.calls.reset();
  });

  it('a', () => {
    mockService.fn();
    expect(mockService.fn).toHaveBeenCalledTimes(1);
  });

  it('b', () => {
    mockService.fn();
    expect(mockService.fn).toHaveBeenCalledTimes(1);
  });
});

результаты модульного теста:

Randomized with seed 28798
Started
..


2 specs, 0 failures
Finished in 0.02 seconds
Randomized with seed 28798 (jasmine --random=true --seed=28798)
---------------|---------|----------|---------|---------|-------------------
File           | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
---------------|---------|----------|---------|---------|-------------------
All files      |     100 |      100 |      80 |     100 |                   
 index.spec.js |     100 |      100 |      80 |     100 |                   
---------------|---------|----------|---------|---------|-------------------
0 голосов
/ 08 мая 2020

Неправильный способ: spyObj.calls.reset()

Правильный способ: spyObj.spyMethod.calls.reset()

ПРИМЕЧАНИЕ : calls.reset() сделано для шпионских методов, а не для шпионского объекта.

Jasmine reset () документы

...