尝试使用 QUnit 和 Teaspoon 运行测试。我有以下测试:
test("Employee signs in", function(){
visit("/").then(function(){
return fillIn("#email", "employee@example.com");
}).then(function(){
return fillIn("#password", "password");
}).then(function(){
return click("#button");
}).then(function(){
ok(find("span:contains('Some Text')").length, "Should see Some Text");
});
});
但是,当我运行测试时,我收到此错误:
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 an Ember.run
我的理解是我的应用程序中有一些异步代码需要包装在 Ember.run 中,因为在测试期间运行循环被禁用。我正在使用 ember-auth,我相信以下代码是登录时发生异步的地方:
submit: function(event, view) {
event.preventDefault();
event.stopPropagation();
App.Auth.signIn({
data: {
email: this.get('email'),
password: this.get('password'),
remember: true, //this.get('remember')
}
});
}
但是我不确定如何将它包装在 Ember.run 中,并且我迄今为止尝试过的东西都不起作用。如何将此代码的异步部分包装在 Ember.run 中以便我可以执行测试?