我正在为我的Ember.js应用程序编写QUnit集成测试。在测试之前,我想通过向专用测试API发出HTTP请求来播种一些测试数据。我使用
jQuery.post
发出POST请求,我使用
Ember.RSVP.Promise.cast
将jQuery承诺转换为RSVP承诺。然而,它似乎从未解决。在下面的代码中,它只是挂起。字符串
"STARTING"
已打印,但两者都没有
"DONE"
也没有
"FAIL"
打印。
我还尝试创建一个新的RSVP Promise,如
http://emberjs.com/api/classes/Ember.RSVP.Promise.html
,没有用(它也被绞死了)。如果我不将jQuery promise包装成RSVP promise,它会到达
“已完成”
或
“失败”
.
为什么RSVP承诺没有解决?
function create_teacher() {
var url = "<%= testing_teacher_path %>";
return Ember.RSVP.Promise.cast(
Ember.$.post(
url,
{
user: {
first_name: "John",
last_name: "Doe"
school: "EE3",
email: "john@doe.com",
password: "password"
}
}
)
);
}
module("Teacher Dashboard", {
setup: function() {
console.log("STARTING");
Ember.run(HstryEd, HstryEd.advanceReadiness);
},
teardown: function() {
console.log("TEARING DOWN");
HstryEd.reset();
}
});
asyncTest("Login", function() {
expect(1);
var teacher = create_teacher();
teacher.then(function() {
console.log("DONE");
ok(true, "done");
start();
},
function() {
console.log("FAIL");
ok(false, "fail");
start();
});
});