2015-01-23 11 views
5

Po prostu zacząłem od angularjs i potrzebuję pomocy. Używam programu ngStorage do obsługi lokalnego magazynu i kątomierza do specyfikacji e2e w aplikacji AngularJS.Testowanie kątomierza z 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) 
    }) 
}) 

Wynik:

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) 

myślę że browser.refresh() usuwa z pamięci lokalnej. Czy istnieje sposób, aby to zatrzymać lub w inny sposób przetestować to samo?

Dzięki za zaawansowane.

Odpowiedz

0

Miałem ten sam problem, ale nie sądzę, że jest to związane z zachowaniem browser.refresh(). Wygląda na to, że są problemy z synchronizacją z ngStorage w rzeczywistości aktualizowanie rzeczy w localStorage.

można zobaczyć w https://github.com/gsklee/ngStorage/blob/master/ngStorage.js#L205 że ngStorage czeka na 100ms po zmianie na $ rootScope faktycznie zaoszczędzić do localStorage.

To, co widzę, jest całkiem spójne: czasami odrzucony przedmiot pozostaje ukryty po ponownym załadowaniu, czasami nie. Jeśli wstawię jawne browser.waitForAngular() przed wywołaniem odświeżania, test przejdzie częściej, ale nie za każdym razem. Najbardziej niezawodną rzeczą, jaką odkryłem do tej pory, jest dodanie wyraźnego browser.sleep(125); po każdej akcji, która zmienia się localStorage poprzez . Nawiasem mówiąc, wydaje się, że jest to metoda używana w swoich własnych testach.

Warto zauważyć, że obsługa onbeforeunload w ngStorage powinna zająć się tym konkretnym przypadkiem, ale wygląda na to, że nie jest to właściwe, gdy wywoływana jest nazwa browser.refresh().

+0

Dodałem problem na github, aby uzyskać lepszy wgląd w to: https://github.com/gsklee/ngStorage/issues/226 – cayleyh