3
我有一個簡單route
在我的應用程序是這樣的:測試行動ember.js與興農和konacha
Dash.PostsNewRoute = Em.Route.extend({
model: function() {
return this.store.createRecord('post');
},
actions: {
saveForm: function() {
this.modelFor('postsNew').save();
}
}
});
這裏是我寫來測試saveForm
,並確保它被稱爲測試:
...
context('create new post', function() {
beforeEach(function() {
...
});
it('calls submit on route', function() {
var mock;
mock = sinon.mock(testHelper.lookup('route', 'posts.new'));
mock.expects('actions.saveForm').once();
this.submitButton.click();
mock.verify();
mock.restore();
});
});
但是,我得到一個錯誤,這個實現: Attempted to wrap undefined property actions.saveForm as function
如果我改變了路線,它的測試這樣的,它會工作:
// Moving the save out of action and call it
Dash.PostsNewRoute = Em.Route.extend({
model: function() {
this.store.createRecord('post');
},
save: function() {
this.modelFor('postsNew').save()
},
actions: {
saveForm: function() {
this.save();
}
}
});
新的測試:
it('calls submit on route', function() {
var mock;
mock = sinon.mock(testHelper.lookup('route', 'posts.new'));
mock.expects('save').once();
this.submitButton.click();
mock.verify();
mock.restore();
});
這樣的測試將通過。是否可以直接測試actions.saveForm
?是sinon的限制,阻止我訪問actions.saveForm?
謝謝!我正在嘗試'.actions',似乎我必須檢查'._actions'。 – ArashM