Sinon JS шпионский вызов, кажется, не работает правильно - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь шпионить вызов метода из экземпляра класса, например:

export class MyClass {
  async method(project, service) {
    console.log('calling my method');
  }
}

, а затем в моем тесте я делаю так:

const classInstance = new MyClass();
const spy = sandbox.spy(classInstance, 'method');
classInstance.method();
sinon.assert.calledOnce(spy);

Странно то, что "console.log" распечатывается, но утверждение sinon говорит, что метод не вызывается: \

Я что-то не так делаю? Спасибо!

1 Ответ

0 голосов
/ 10 марта 2020

должно работать. Я использую "sinon": "^8.1.1". Например,

index.ts:

export class MyClass {
  async method(project, service) {
    console.log('calling my method');
  }
}

index.test.ts:

import { MyClass } from './';
import sinon from 'sinon';

describe('60605728', () => {
  it('should spy', () => {
    const sandbox = sinon.createSandbox();
    const classInstance = new MyClass();
    const spy = sandbox.spy(classInstance, 'method');
    classInstance.method('project', 'service');
    sinon.assert.calledOnce(spy);
  });
});

Результаты модульных испытаний:

  60605728
calling my method
    ✓ should spy


  1 passing (10ms)
...