Цель: имитировать локальное хранилище для тестирования в Jest.
Проблема: Jest не удалось загрузить фиктивный файл localStorage, я получаю setItem: undefined , так как его localStorage не определяется в соответствии с Jest.
Однако я могу обойти эту проблему, просто импортировав ее в каждый тестовый файл , но это кажется очень hcti c и неоптимальным. Пожалуйста, помогите мне, чтобы я мог улучшить этот код.
Я создал приложение для реагирования, используя create-response-app
if (!window.localStorage) {
window.localStorage = {}
Object.assign(window.localStorage, {
removeItem: function removeItem(key) {
delete this[key]
}.bind(window.localStorage),
setItem: function setItem(key, val) {
this[key] = String(val)
}.bind(window.localStorage),
getItem: function getItem(key) {
return this[key]
}.bind(window.localStorage),
})
}
Вот файл package. json, в котором хранится конфигурация Jest.
"jest": {
"setupFiles": [
"jest-canvas-mock",
"./test/setup-test-framework"
]
}