验收测试重定向到特定URL

时间:2016-08-09 20:42:22

标签: ember.js acceptance-testing

我在ember-cli上创建了一个Acceptance测试,以便检查用户何时在URL上,然后点击"取消"该页面上的按钮,该页面应重定向到其他URL。

运行测试时我收到此错误:

  

"如果取消按钮是,则在重定向到上一个URL期间拒绝承诺   点击:找不到元素.close-button"。

但我的模板上有这个元素。有人可以告诉我我在这里缺少的东西或建议我可以阅读的文件,以解决这个错误吗?

这是我的验收测试:

import { test } from 'qunit';
import moduleForAcceptance from '/tests/helpers/module-for-acceptance';

moduleForAcceptance('Acceptance | test/company');
test('Redirects to previous URL if cancel button is clicked', function() {
    return visit('test/company/add').then(function(){
      return click('.close-button');
    }).then(function(assert){
      assert.equal(currentURL(), 'test/company');
    });
});

我也尝试了这个测试,但我一直遇到类似的错误:

test('Redirects to previous URL if cancel button is clicked', function(assert) {
  visit('/test/company/add');
  click ('.close-button');
  andThen(function() {
    assert.equal(currentURL(), '/test/company');
  });
});

这是错误:

  

错误:找不到元素.close-button。

这是模板的一部分,我有取消按钮(add.hbs)

<div class="form-add">
    <a href="#" class="close-button" {{action 'cancel'}}>Close</a>
</div>

这是控制器,其中操作取消&#39;定义如下:

actions: {
    cancel() {
       if (this.get('isSaved')) {
           return;
       }
         this.transitionToRoute('test/company');
    }
}

1 个答案:

答案 0 :(得分:2)

访问并点击将返回承诺的测试助手。通常,一旦您的承诺得到解决,您将执行进一步的测试。

尝试这样做:

test('Redirects to previous URL if cancel button is clicked', function(assert) {
  visit('/test/company/add');  
  andThen(()=>{
    click ('.close-button');
    andThen(()=>{
        assert.equal(currentURL(), '/test/company');
    })  
  });
});