我在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');
}
}
答案 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');
})
});
});