Как я могу издеваться над внешней библиотекой, которая используется в конструкторе Singleton? Машинопись и шутка - PullRequest
0 голосов
/ 21 января 2020

Я должен проверить Синглтон, но в его конструкторе я вызвал внешний метод. Как я могу издеваться?

import externalLib from 'externalModule';

class MySingleton {

  public static _instance: MySingleton;

  private constructor {
    externalLib.method() // I have to mock externalLib
  }

  public static getInstance() {
    if (_instance) {
      return _instance;
    }

    return new MySingleton();
  }

}

export default MySingleton.getInstance();

Спасибо.

1 Ответ

0 голосов
/ 21 января 2020

Вы можете сделать это таким образом (сделать c https://jestjs.io/docs/en/mock-functions#mocking -модули )

import extLib from 'extLib';

jest.mock('extLib');

test('should fetch users', () => {
  extLib.method.mockResolvedValue(MyReturnValue);

  // or you could use the following depending on your use case:
  // extLib.method.mockImplementation(() => Promise.resolve(MyReturnValue))

  // Your testing code here...
});
...