Ответ 1
window.history.back()
или window.history.go(-1)
В моих приемочных тестах я хотел бы имитировать обратные нажатия кнопок и результаты.
У меня есть следующее, но у меня такое чувство, что это неправильно.
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'));
});
})
Каков правильный способ имитации обратной кнопки в тестах?
window.history.back()
или window.history.go(-1)
Чтобы выполнить window.history.back()
, вам нужно использовать location : 'hash'
в Router
App.Router.reopen({
location: 'hash'
});
Здесь официальная документация об установке типа местоположения: http://emberjs.com/guides/routing/specifying-the-location-api/
Я написал тестовых помощников для имитации кнопок навигации и навигации браузера и опубликовал их в качестве дополнения ember-cli: ember-cli-browser-navigation-button -test-помощник
Они выставляют 3 тестовых помощника: backButton
, forwardButton
, setupBrowserNavigationButtons
. Последняя собственная регистрация службы, которая регистрирует изменения местоположения и использует переходы для возврата или пересылки.
Он также работает со значением по умолчанию location: 'none'
.