在测试Ember.js应用程序时如何模拟后退按钮?

Tar*_*ski 11 testing ember.js

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

我有以下几点,但我觉得它错了.

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'));
    });
})
Run Code Online (Sandbox Code Playgroud)

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

ale*_*ler 8

window.history.back() 要么 window.history.go(-1)

  • 这是因为默认情况下测试使用的NoneLocation根本不跟踪历史记录.如果要测试后退功能,或者执行当前正在执行的操作,则必须将位置更改为HashLocation. (5认同)
  • 当与测试一起使用时,这不起作用,因为它强制整个窗口返回1,而不是路径.它基本上将它带到一个不同的页面. (2认同)
  • 使用Ember 2.2.0/Ember CLI 1.13.13,将`locationType`设置为`hash`不起作用.浏览器测试窗口显示为空白,控制台错误,无法找到模块"Ember". (2认同)