transitionToRoute导致ember测试挂起

时间:2014-06-14 00:08:04

标签: ember.js qunit karma-runner ember-testing

使用ember.js v 1.5.1。

我使用karma和qunit来测试我的ember应用程序。在我的几个测试中,我有以下情况:1.a用户点击 - > 2.对我们的服务器进行异步调用 - >然后3.通过" this.transitionToRoute(' someroute& #39)"在控制器中调用。当它在测试时遇到transitionToRoute方法时,karma挂起。尝试用ember.run调用包装它,但似乎没有帮助。

当我注释掉它的转换调用时,它会相应地失败。

示例测试代码,它挂起并且没有达到相同的呼叫

test('successful registration request', function() {
  setupMockRegistrationRequests();

  visit("/register") 
  .fillIn('#email', 'test2')
  .fillIn('#password','password')
  .click('#submit')  
  .andThen(function() {
    equal(find(".register-page .form-alert").length, 0, "Should be no error");
    equal(find(".login-page").length, 1, "Should be on login screen");
  }); 
});

控制器代码

测试用例运行

//this.transitionToRoute('login');

测试用例挂起

   this.transitionToRoute('login');

任何人都知道它悬挂的原因?/我可以做些什么让它继续下去?

1 个答案:

答案 0 :(得分:0)

问题在于它正在转换,但是下一个路由发出了更多异步请求,而我的mockjax请求没有处理这些异步请求。这导致测试环境挂起而没有抛出任何错误。