Ember.js Ember维护标识符完整性的最佳实践

Ember.js Ember维护标识符完整性的最佳实践,ember.js,handlebars.js,Ember.js,Handlebars.js,假设我有一些简单的模板代码 {{#if prop}} <h1>Hi!</h1> {{/if}} 一段时间后,我可能会决定,无论出于何种原因,我都需要更改控制器中属性的名称。我在控制器中将“prop”的名称更改为“newProp” 现在,如果我忘记更改模板中的表达式,我就有问题了。如果我理解正确,如果关联的控制器/模型上不存在该名称的属性,Ember不会抛出错误。如果我理解正确,这是“设计的”,但是在这种情况下可能会导致回归 我的问题是:什么是避免此类完整性问题的

假设我有一些简单的模板代码

{{#if prop}}
    <h1>Hi!</h1>
{{/if}}
一段时间后,我可能会决定,无论出于何种原因,我都需要更改控制器中属性的名称。我在控制器中将“prop”的名称更改为“newProp”

现在,如果我忘记更改模板中的表达式,我就有问题了。如果我理解正确,如果关联的控制器/模型上不存在该名称的属性,Ember不会抛出错误。如果我理解正确,这是“设计的”,但是在这种情况下可能会导致回归

我的问题是:什么是避免此类完整性问题的“最佳实践”?是否有开发工具可以突出这些问题?在Ember的调试模式下是否有记录此类事件的选项(看不到任何)?在这些情况下,有没有一个选项可以强制Ember爆炸(例如,一些钩子可以让我进入属性/表达式解析逻辑)?还是让集成测试之类的工作来检查Handlebar表达式是否达到预期效果


动机:作为一名Ember新手,我发现我在这些早期阶段进行了很多重构。我想要一个漂亮的“安全网”,这样我就知道,在我进行这些重构之后,所有模板表达式都会继续解析为定义的内容。

你是对的,请确保你的模板渲染的所有内容都是通过集成测试完成的

要验证属性解析和业务逻辑是否正确,请为控制器添加单元测试


我相信您已经看到了这一点,但我添加此链接只是为了以防万一:

为您的输入干杯。根据您链接的指南,我们已经准备好了Ember集成测试。我想我们只需要确保我们的集成测试具有完整的覆盖范围,以避免此类问题。
App.MyController = Ember.ObjectController.extend({
    prop: true
});