【问题标题】:Acceptance test Redirecting to specific URL验收测试重定向到特定的 URL
【发布时间】:2016-08-09 20:42:21
【问题描述】:

我在 ember-cli 上创建了一个验收测试,以检查用户何时访问某个 URL,然后单击该页面上的“取消”按钮,该页面应重定向到其他 URL。

运行测试时出现此错误:

"如果取消按钮是,则在重定向到上一个 URL 期间承诺被拒绝 clicked: Element .close-button not found"。

但是我的模板上有那个元素。有人可以建议我在这里缺少什么或建议我可以阅读以解决此错误的文档吗?

这是我的验收测试:

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>

这是控制器,其中定义了“取消”操作:

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

【问题讨论】:

  • 您是否尝试在第二种方法中将 click 放入您的 andThen() 中?

标签: ember.js acceptance-testing


【解决方案1】:

访问和单击是返回承诺的测试助手。通常,一旦你的承诺得到解决,你将执行进一步的测试。

尝试这样做:

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

【讨论】:

  • 感谢您的帮助,我尝试了您的代码,但仍然遇到同样的错误。我不知道还能做什么。它在页面上找不到该元素。
猜你喜欢
  • 2020-05-28
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 2015-02-04
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多