11

在我的验收测试中,我想模拟后退按钮单击和结果转换。

我有以下内容,但我感觉它是错误的。

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'));
    });
})

在测试中模拟后退按钮的正确方法是什么?

4

3 回答 3

8

window.history.back()或者window.history.go(-1)

于 2013-09-25T21:41:52.963 回答
3

window.history.back()完成工作,您需要location : 'hash'在您的Router

App.Router.reopen({
  location: 'hash'
});

这是关于设置位置类型的官方文档:http: //emberjs.com/guides/routing/specifying-the-location-api/

于 2013-09-27T04:10:38.417 回答
1

我编写了测试助手来模拟后退和前进浏览器导航按钮并将它们发布为 ember-cli 插件:ember-cli-browser-navigation-button-test-helper

他们公开了 3 个测试助手:backButton, forwardButton, setupBrowserNavigationButtons. 最后一个自己注册一个服务,该服务记录位置更改并使用转换来返回或前进。

它也适用于 default location: 'none'

于 2016-04-11T00:44:41.323 回答