July 18, 2017

jestでlocalStorageのテストを書く

localStorage内にデータを格納するActionをjestでテストするときにlocalStorage is not definedと出て、それはそうとなったので、モックを書く。

var localStorageMock = (function() {
    var store = {};

    return {
        getItem: function(key) {
            return store[key] || null;
        },
        setItem: function(key, value) {
            store[key] = value.toString();
        },
        clear: function() {
            store = {};
        }
    };

})();

Object.defineProperty(window, 'localStorage', {
     value: localStorageMock
});

Testing localStorage - Google グループ

上記をbrowserMocks.jsとして適当なところに保存し、package.jsonsetupFilesとして追記する。

"jest": {
    "setupFiles": ["/path/to/browserMocks.js"],
    "testURL": "http://127.0.0.1/"
}

ここでtestURLを設定しておかないと、SecurityErrorと怒られる(それはそう)。
あとは普通にActionのテストを書いてあげればOK。

このエントリーをはてなブックマークに追加

© Kouhei Morita 2018