为了避免基于 ember 的应用程序的开发/生产环境和测试环境之间的名称冲突,最好的做法是什么。
通常,每个 Ember 应用程序都有一个命名空间:
window.MyApp = Em.Application.create();
在生产中,我通过重新定义 Em.Application 的 Ready 属性来运行一些初始化函数
window.MyApp = Em.Application.create(
ready: function() {
// create some objects
}
);
但是,在我的测试环境中,我不想运行这些初始化函数,因为我自己创建对象。使用相同的 MyApp 定义会导致冲突,因为我创建的对象在 DOM 中插入相同的元素。那么,当我测试我的应用程序时,如何在没有就绪函数的情况下使用相同的 namespace MyApp 呢?我使用 jasmine 来测试该应用程序。
最佳答案
我保留了实例化 Controller 的粘合代码,在 Application#ready
函数之外创建和设置 View 。
拿pangratz/ember.js-dashboard例如:core.js
仅包含 Namespace
定义,而 controllers.js
、views.js
和所以定义我的类(class)。实例化 Controller 、创建 View 并设置绑定(bind)的粘合代码在 main.js
中定义。然后,main.js
将在 index.html
的“真实”应用程序中与其他组件一起使用。
我使用interline/ember-skeleton对于基本的应用程序布局,它本身使用 QUnit 进行测试。但这也应该适用于 Jasmine。
关于ember.js - 避免命名空间冲突和初始化函数测试 Ember.js 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206247/