2013-09-21 8 views
11

W moich testach akceptacyjnych chciałbym symulować kliknięcie przycisku Wstecz i przejścia wyników.Jak symulować przycisk Wstecz podczas testowania aplikacji Ember.js?

Mam następujące, ale mam wrażenie, że jest źle.

test("back to search page", function(){ 
    visit('/') 
    .then(function(){ 
     return fillIn('.search input', 'hi'); 
    }) 
    .then(function(){ 
     return click('.search button'); 
    }) 
    .then(function(){ 
     // I want to go back here 
     return visit('/'); 
    }) 
    .then(function(){ 
     var keyword = find('.search input').val(); 
     equal(keyword, ''); 
     ok(!exists('.search .results')); 
    }); 
}) 

Jaka jest właściwa droga do symulowania przycisku wstecz w testach?

Odpowiedz

8

window.history.back() lub window.history.go(-1)

+2

To nie działa, gdy jest używane z testami, ponieważ zmusza całe okno do powrotu 1, a nie do trasy. Zasadniczo przeniesie go na inną stronę. –

+5

Wynika to z tego, że testy domyślnie używają opcji NoneLocation, która w ogóle nie śledzi historii. Będziesz musiał zmienić swoją lokalizację na HashLocation, jeśli chcesz przetestować funkcjonalność wsteczną lub zrobić to, co aktualnie robisz. – alexspeller

+0

Czy masz jakieś odniesienia, jak ustawić HashLocation? –

1

mam test pisemny pomocnicy do symulacji przycisków nawigacji w przeglądarce wstecz i do przodu i opublikowali je jako dodatek ember-cli: ember-cli-browser-navigation-button-test-helper

Eksponują 3 pomocników testowych: backButton, forwardButton, setupBrowserNavigationButtons. Ostatnia własność rejestruje usługę, która rejestruje zmiany lokalizacji i używa przejść do powrotu lub przekazania.

Działa również z domyślnym location: 'none'.

Powiązane problemy