QUnit에서 Ember.js 어플리케이션에 대한 통합 테스트를 작성하고 있습니다. 테스트 전에 전용 테스트 API에 HTTP 요청을 보내 일부 테스트 데이터를 시드하려고합니다. jQuery.post
을 사용하여 POST 요청을 발행하고 Ember.RSVP.Promise.cast
을 사용하여 jQuery 약속을 RSVP 약속으로 변환합니다. 그러나 결코 해결되지 않는 것처럼 보입니다. 아래의 코드에서, 그것은 단지 멈춘다. 문자열 "STARTING"
이 인쇄되지만 "DONE"
이나 "FAIL"
도 인쇄되지 않습니다.QUnit 통합 테스트에서 RSVP.Promise를 해결할 수 없습니다.
http://emberjs.com/api/classes/Ember.RSVP.Promise.html의 "고급 사용법"섹션에 설명 된대로 새 RSVP 약속을 만들려고했지만 사용하지 않으려 고합니다. jQuery 약속을 RSVP Promise에 포장하지 않으면 "DONE"
또는 "FAIL"
에 도달합니다.
왜 RSVP Promise가 해결되지 않습니까?
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: "[email protected]",
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();
});
});
'ic-ajax'를 사용하여 트릭을했습니다. 감사합니다! – yorbro