【发布时间】:2016-02-13 17:56:48
【问题描述】:
我有一个控制器,它调用一个方法来执行一些异步操作并返回一个承诺。
export default Ember.Controller.extend({
_upload: function() {
// return a promise
},
actions: {
save: function(item) {
this._upload(item).then(function(response) {
// Handle success
}, function(error) {
// Handle error
}
}
}
});
我想对Handle success 和Handle error 下的代码进行单元测试。
在我的单元测试中,我使用
_uploadMethod
controller.set("_upload", function() {
return new Ember.RSVP.Promise(function(resolve) {
resolve({name: "image1"});
});
});
然后我调用操作并断言成功处理程序已完成工作
controller.send("save", "item");
assert.equal(controller.get("selected.item"), "item");
问题是断言失败,因为它在 promise 被解决并且成功处理程序中的所有内容完成之前运行。
在检查断言之前如何等待承诺解决?
【问题讨论】: