0
我有一个控制器,其中有一个动作调用一个方法来执行一些异步的东西并返回一个承诺。Ember.js在控制器中测试异步动作
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");
的问题是,断言失败,因为它在承诺解决之前运行并且所有成功处理程序中的内容都已完成。
如何在断言被检查之前等待承诺解决?
它的工作原理,谢谢。 – GUL