В соответствии с документами Jest:
"Тестовые файлы в песочнице и автоматическое глобальное состояние сбрасываются для каждого теста, поэтому никакие два теста не конфликтуют друг с другом ."
Однако мойтесты конфликтуют.
Код:
// Note: op is from object-path module for deep access by dot path
let config = { name: 'Bob' }
const getConfig = path => {
return op.get(config, path)
}
const setConfig = (path, value) => {
return op.set(config, path, value)
}
Тесты:
test('setConfig() updates a deep config value', () => {
const { setConfig, getConfig } = require('services/config')
setConfig('name', 'Woot')
const res = getConfig('name')
expect(res).toBe('Woot')
})
test('getConfig() updates a deep config value', () => {
const { getConfig } = require('services/config')
const res = getConfig('name')
expect(res).toBe('Bob') // Actually Woot
})
Первый тест изменяет файл конфигурации, вызывая сбой второго теста.
Из моего опыта такие вещи, как process.env
, не попадают в песочницу, но это?Что я не понимаю в «песочнице»?