5

私はngStorageAngularJSアプリでe2e仕様へのローカルストレージと分度器を扱うために使用しています。

describe('Test', function() {
  beforeEach(function () {
    browser.driver.manage().window().setSize(1280, 1024)
    browser.get('http://localhost:9000/#/test/first-test')
  })

  it("keeps the alternative marked", function () {
      element(by.id('element')).click()

      browser.refresh()

      expect(element(by.id('element')).isSelected()).toBe(true)
  })
})

結果:

1) Test keeps the alternative marked
   Message:
     Expected false to be true.
   Stacktrace:
     Error: Failed expectation
    at [object Object].<anonymous> (path/spec/test_spec.js:12:52)

browser.refresh()これでローカルストレージがクリアされると思います。それを維持する方法、または同じことをテストする別の方法はありますか?

4

1 に答える 1

0

私も同じ症状で悩んでいますが、性格は関係ないと思いますbrowser.refresh()ngStorageで実際に更新するタイミングに問題があるようlocalStorageです。

https://github.com/gsklee/ngStorage/blob/master/ngStorage.js#L205ngStorage、 $rootScope の変更後、実際に に保存するために 100 ミリ秒待機することがわかりますlocalStorage

私が見ているのはこれとかなり一致しています: 閉じられたアイテムがリロード後に非表示のままになる場合と、そうでない場合があります。更新呼び出しの前に明示的に配置するbrowser.waitForAngular()と、テストはより頻繁に成功しますが、毎回ではありません。私がこれまでに見つけた最も信頼できることは、によって変更されるすべてのアクションの後に明示的なを追加することbrowser.sleep(125);です。ちなみに、これは独自のテストで使用されている方法のようです。localStoragengStoragengStorage

onbeforeunloadハンドラーがこの特定のケースを処理する必要がありますが、呼び出されたngStorageときに正しい処理を行っていないように見えることに注意してください。browser.refresh()

于 2016-06-28T17:58:14.320 に答える