2

为了避免基于 ember 的应用程序的开发/生产环境和测试环境之间的名称冲突,最好的做法是什么。

通常,每个 Ember 应用程序都有一个命名空间:

window.MyApp = Em.Application.create();

在生产中,我通过重新定义 Em.Application 的 ready 属性来运行一些初始化函数

window.MyApp = Em.Application.create(

    ready: function() {
      // create some objects
    }
);

但是,在我的测试环境中,我不想运行这些初始化函数,因为我自己创建了对象。使用 MyApp 的相同定义会导致冲突,因为我创建的对象在 DOM 中插入了相同的元素。那么,当我测试我的应用程序时,如何在没有 ready 函数的情况下使用相同的命名空间 MyApp 呢?我使用 jasmine 来测试应用程序。

4

1 回答 1

2

我保留了实例化我的控制器、创建和设置视图的胶水代码Application#ready

pangratz/ember.js-dashboard为例:core.js只保存Namespace定义,而controllers.js,views.js等等定义我的类。实例化控制器、创建视图和设置绑定的胶水代码在main.js. 然后main.jsindex.html.

我使用interline/ember-skeleton作为基本应用程序布局,它本身使用 QUnit 进行测试。但这也应该适用于 Jasmine。

于 2012-04-18T09:25:26.273 回答