Наш рабочий процесс включает в себя использование модулей ES6. Это также включает в себя модульные тесты. Мы тестируем import
модулей. Проблема в том, что первоначальные авторы решили, что каждый модуль должен возвращать объекты, и поэтому у нас есть глобальные синглтоны (из-за того, как работает импорт ES6) по всей кодовой базе — классическая проблема модульного тестирования.
Есть ли способ «сбросить» указанные модули с помощью SystemJS после каждого теста?
образец модульного теста (загруженный karma-systemjs):
import MUT from './Mut' // module under test
describe('MUT', () => {
it('should do stuff', () => {
MUT.value = 'foo'
})
it('should do more stuff', () => {
// value should not be 'foo' here. How do you reset MUT?
})