Ember Integration测试模拟过渡到另一条路线,然后返回

时间:2016-06-09 20:45:51

标签: ember.js integration-testing

让我先解释一下这个问题: 我们有一个基于Ember的脏表单检查器,如果用户转换到另一个页面并在页面上有更改时确认转换,则应重置isDirty标志。我们有一个错误,如果用户转换了更改,确认了更改,然后返回,没有做任何更改并再次导航,确认对话框再次出现。简单修复,只需在初始确认时重置标志。现在,我正在尝试为此编写集成测试,但我找不到关于如何测试它的明确文档。我想做的是以编程方式改变形式,过渡,然后返回,然后再离开。我怎么能做到这一点?这是Ember 2.3.0。

这是我尝试过的东西:

 this.render(hbs `{{#mycomp invokeDialog=invokeDialog on-dirty=formDirtyEvent on-confirm=dialogConfirmEvent on-cancel=dialogCancelEvent}}
                    {{mytextfield id=id label="dummy-form-fullName"  type="text" inputBindValue="Paul Ryan"}}
                    {{/mycomp}}`);

            Ember.$("#textfield-" + this.get('id')).val("Paul Ryana");
            fillIn(Ember.$('#textfield-' + this.get('id')), 'Paul Ryanna');


            visit("/").then(function() {

             });

这会生成错误

  

“错误:断言失败:您不能使用相同的根元素   (#ember-testing)在Ember.Application“

中多次

1 个答案:

答案 0 :(得分:3)

您应该使用acceptance tests在路由之间进行转换。集成测试(component tests)仅用于独立于应用程序流测试组件功能。所以你得到了这个错误,因为实际上没有你可以访问的路径。