Как динамически импортировать, повторно импортировать и сбросить модуль класса из теста - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь протестировать класс, который по умолчанию импортирован из файла. Когда я пытаюсь проверить, не сбрасывает ли конструктор класса.

Класс в файле a.ts

class A{
    private Property1: string | null = null;

    public Initialize = (property1: string) => {
        this.Property1= property1;
    }
    public GetProperty1 = () => this.Property1;
}

export default new A();

И я тестирую его вот так

let A:any;
jest.isolateModules(async () => {
  A = (await import("../source/a")).default;
});

describe('Testing', () => {
  describe('Initialize', () => {    
    beforeAll(() => {
      A.Initialize('Test1');
    });

    afterAll(() => {
      jest.clearAllMocks();
      jest.resetAllMocks();
      jest.resetModuleRegistry();
      jest.resetModules();
    });

    it('Should set Property1', () => {
      expect(A.GetProperty1()).toEqual('Test1');
    });
  });

  describe('Initialize2', () => {
    beforeAll(() => {
      //A.Initialize('Test1');
    });

    afterAll(() => {
      jest.clearAllMocks();
      jest.resetAllMocks();
      jest.resetModuleRegistry();
      jest.resetModules();
    });

    it('Should not set Property1', () => {
      expect(A.GetProperty1()).not.toEqual('Test1');
    });
  });

Я прокомментировал метод A.Initialize , но все равно он показывает значение как Test1 . Я хочу установить этот класс несколько раз для инициализации значения. Есть ли способ очистить предыдущий импорт и повторно импортировать его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...