Как убирать после каждого теста кармы? - PullRequest
1 голос
/ 01 мая 2020

Это мой тест (Карма + Мокко):

describe('foo', function() {
  afterEach(function() {
    var id = window.setTimeout(function() {}, 0);
    while (id--) {
      window.clearTimeout(id);
    }
  });
  it('works', function() {
    document.body.innerHTML = '<html/>';
    // add some timeouts here
  });
});

Часть afterEach абсолютно одинакова во всех тестах. Это убирает беспорядок после теста. Это очевидное дублирование кода. Как от этого избавиться?

1 Ответ

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

Вы можете запустить глобальный перехват (before, beforeEach, after и afterEach) при запуске каждого теста, определив метод в файле установки.

test / setup. js

beforeEach(async () => {  
  // your code
})

Нам нужно сообщить Мокко, где мы можем найти этот файл, мы можем сделать это, поместив следующее в mocha.opts (https://mochajs.org/#mochaopts) file.

--file ./test/setup.js

Подробнее об этом можно прочитать здесь: https://mochajs.org/#root -level-hooks .

...