我试图通过阅读源代码和单元测试各种组件来了解更多关于 ember 的核心。目前,我正在尝试连接一个简单的视图/控制器/模板组合,以查看是否可以针对使用给定模型和模板呈现的视图(实际 html 输出)进行断言。
我的第一个有效测试看起来像这样
it ("template will render given output", function(){
var view = Ember.View.create({
template: Ember.Handlebars.compile('bar')
});
Ember.run(function() {
view.appendTo("#body");
});
expect(Ember.$.trim(view.$().text())).toEqual("bar");
});
但这不是用模型或控制器做任何动态的事情。我的下一次尝试目前失败了,因为我似乎无法在视图中连接(连接到给定的控制器)。
it ("model property is output when view bound", function(){
var speaker = CodeCamp.Speaker.createRecord({id: 1, name: 'foobar'});
var view = Ember.View.create({
template: Ember.Handlebars.compile('{{#each foo in controller}}{{foo.name}}{{/each}}')
});
var controller = Ember.ArrayController.create({
content: []
});
get(controller, 'content').push(speaker);
var x = get(controller, 'content');
var len = get(get(controller, 'content'), 'length');
expect(len).toEqual(1);
set(controller, 'view', view);
Ember.run(function() {
view.appendTo("#body");
});
expect(Ember.$.trim(view.$().text())).toEqual("foobar");
});
但就目前而言,断言失败了
预期 '' 等于 'foobar'。