web-dev-qa-db-ja.com

AngularJSアプリケーションの分度器テストでlocalStorageにアクセスする

入力データがローカルストレージに正しく保存されていることを確認するためにいくつかのテストを書いていますが、分度器テスト内からlocalStorageにアクセスするにはどうすればよいですか?

...
describe('vgPersist', function() {
  it('Should save input data in local storage until form submitted', function() {
    // Prepare Object and Open browser
    var addOns = new AddOns();
    addOns.get();

    -> Clear localStorage
    -> Get from localStorage

ExecuteScriptをどのように使用しますか?そして、executeScriptからデータを取得できますか?

16
Zack Argyle

宛先ローカルストレージからアイテムを取得window.localStorage.getItem()からexecuteScript()を使用します。

_var value = browser.executeScript("return window.localStorage.getItem('key');");
expect(value).toEqual(expectedValue);
_

宛先ローカルストレージをクリア呼び出しclear()

_browser.executeScript("window.localStorage.clear();");
_

便宜上、このヘルパーオブジェクト/ラッパーをローカルストレージの周りに配置することもできます。

_"use strict";

var LocalStorage = function () {
    this.getValue = function (key) {
        return browser.executeScript("return window.localStorage.getItem('" + key + "');");
    };

    this.get = function () {
        browser.executeScript("return window.localStorage;");
    };

    this.clear = function () {
        browser.executeScript("return window.localStorage.clear();");
    };
};

module.exports = new LocalStorage();
_
31
alecxe