Ember 测试时出错:您需要将任何具有异步副作用的代码包装在 运行
Ember Error while testing: You will need to wrap any code with asynchronous side-effects in a run
我们已经有一个应用程序正在工作,只是为了 CI 的目的向它添加测试用例。
我们有一个小代码可以尝试登录过程并检查在成功、失败、无效帐户帐户锁定等可能的登录状态后会发生什么
所以我尝试了以下代码。
visit('/login')
.fillIn('#identification', "testuser")
.fillIn('#password', "testpass")
.click('input[type="submit"]')
andThen(function(){
ok(!exists('button:contains(sign in)'), '3. Login button is not displayed when authenticated');
ok(exists('.dropDownMenuOptions li:contains(Logout)'), '4. Logout button is displayed when authenticated');
});
并且在控制台中出现以下错误。
ember.debug.js:5162 Uncaught Error: Assertion Failed: You have turned on testing mode, which disabled the run-loop's autorun. You will need to wrap any code with asynchronous side-effects in a run
点击后出现此错误。当点击向服务器发出 AJAX 调用并在其响应时进行路由转换。
对于成功登录的情况,我想检查我的路由是否从 /login
更改为 /
由于此错误我无法执行此操作。
求推荐。
谢谢
在处理您的表单提交的 controller/component 中,您必须做一组(示例)
save: function() {
this.get('model').set('name', 'foo');
}
如果这项工作是在某些 ajax 事件之后在 运行 循环(异步)中完成的,请务必像这样用 ember 运行 包装它
save: function() {
Ember.run(function() {
this.get('model').set('name', 'foo');
});
}
我们已经有一个应用程序正在工作,只是为了 CI 的目的向它添加测试用例。
我们有一个小代码可以尝试登录过程并检查在成功、失败、无效帐户帐户锁定等可能的登录状态后会发生什么
所以我尝试了以下代码。
visit('/login')
.fillIn('#identification', "testuser")
.fillIn('#password', "testpass")
.click('input[type="submit"]')
andThen(function(){
ok(!exists('button:contains(sign in)'), '3. Login button is not displayed when authenticated');
ok(exists('.dropDownMenuOptions li:contains(Logout)'), '4. Logout button is displayed when authenticated');
});
并且在控制台中出现以下错误。
ember.debug.js:5162 Uncaught Error: Assertion Failed: You have turned on testing mode, which disabled the run-loop's autorun. You will need to wrap any code with asynchronous side-effects in a run
点击后出现此错误。当点击向服务器发出 AJAX 调用并在其响应时进行路由转换。
对于成功登录的情况,我想检查我的路由是否从 /login
更改为 /
由于此错误我无法执行此操作。
求推荐。
谢谢
在处理您的表单提交的 controller/component 中,您必须做一组(示例)
save: function() {
this.get('model').set('name', 'foo');
}
如果这项工作是在某些 ajax 事件之后在 运行 循环(异步)中完成的,请务必像这样用 ember 运行 包装它
save: function() {
Ember.run(function() {
this.get('model').set('name', 'foo');
});
}