ember.js - 避免命名空间冲突和初始化函数测试 Ember.js 的最佳实践

标签 ember.js jasmine

为了避免基于 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.jsviews.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/

相关文章:

node.js - Jasmine 调用绝对没有返回任何内容

javascript - ASP.NET MVC 中的 TDD/BDD JavaScript 适用于多个浏览器引擎

javascript - 如何在 Angular js 中包含模块以删除未找到模块的错误?

javascript - EmberJS - 从 Controller 检索模型的奇怪行为

javascript - 不能在空的 hasMany 关系上使用 {{#for}} 助手

ember.js - 从嵌入对象访问父记录

javascript - 使用 Protractor 配置在 Allure 中截取多个浏览器的屏幕截图

ember.js - 将自定义适配器与 Ember CLI 中的特定模型相关联

ember.js - 使用 Ember.js 为移动应用程序优化 View 结构

javascript - TypeError : jasmine. addMatchers 不是函数