2015-01-23 4 views
5

Я только начал с angularjs и нуждаюсь в некоторой помощи. Я использую ngStorage для работы с локальным хранилищем и транспортиром для спецификаций e2e в приложении AngularJS.Испытание утяжелителей с ngStorage

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() очищает локальное хранилище. Есть способ сохранить это или другой способ проверить одно и то же?

Спасибо за расширенный.

ответ

0

У меня была такая же проблема, но я не думаю, что это связано с поведением browser.refresh(). Похоже, что возникают проблемы с ngStorage, фактически обновляющие вещи в localStorage.

Вы можете увидеть в https://github.com/gsklee/ngStorage/blob/master/ngStorage.js#L205, что ngStorage ждет 100 мс после изменения на $ rootScope, чтобы фактически сохранить до localStorage.

То, что я вижу, вполне согласуется с этим: иногда убранный элемент остается скрытым после перезагрузки, иногда это не так. Если я поставлю явный browser.waitForAngular() перед вызовом обновления, тест проходит чаще, но не каждый раз. Наиболее надежной вещью, которую я нашел до сих пор, является добавление явного browser.sleep(125); после каждого действия, которое меняет localStorage через ngStorage. Кстати, это, по-видимому, метод ngStorage использует в своих собственных тестах.

Стоит отметить, что обработчик onbeforeunload в ngStorage должен позаботиться об этом конкретном случае, но, похоже, не так правилен, когда вызывается browser.refresh().

+0

Я добавил вопрос о github, чтобы получить более полное представление об этом: https://github.com/gsklee/ngStorage/issues/226 – cayleyh

Смежные вопросы