2014-09-05 20 views
1

在我的测试中,我手动实例化组件并将其附加到DOM。出于某种原因,我似乎无法使用点击操作触发该组件上的操作,但如果我要手动调用操作上的“发送”,那么它就可以工作。这里是一个jsbin测试链接:http://jsbin.com/copum/1/在测试时不能触发组件中的动作

 //THIS DOESN'T WORK 
     click('button.click-me'); 
     andThen(function(){ 
      expect(find('#click-status').length).to.be(1);    
     }); 

     /* 
     //THIS WORKS THOUGH 
     Ember.run(function(){ 
      documentCollection.send('clickMe'); 
     }); 
     andThen(function(){ 
      expect(find('#click-status').length).to.be(1);    
     });    
     */ 

好像烬无法找到由于某种原因,动作相关的DOM。任何方式,我可以使事情与点击事件?

在此先感谢。

回答

1

你只是缺少在您的测试:)

这个现在通过顶部的访问,如你所期望

it("should show the text when clicking the button - using click", function() { 
     visit('/'); 
     click('button.click-me'); 
     andThen(function(){ 
      expect(find('#click-status').length).to.be(1);    
     }); 
    }); 
+0

拍摄就是它。感谢@Toran找出答案。 – 2014-09-09 13:07:09

0

另外,如果你不想打电话给visit('/')做工作,你可以手动创建一个Ember.EventDispatcher,只要不要忘记完成后就销毁它。

it("should show the text when clicking the button - using click", function() { 
    dispatcher = Ember.EventDispatcher.create(); 
    dispatcher.setup(); 
    click('button.click-me'); 
    andThen(function(){ 
     expect(find('#click-status').length).to.be(1);    
     Ember.run(function(){ 
      dispatcher.destroy(); 
     }); 
    }); 
}); 
相关问题