Ember.js/Rails与灯具的集成测试

Bob*_*zel 6 javascript ruby-on-rails ember.js chai konacha

我想建立一个测试环境为我的ember.js rails申请,并已决定使用Konachamochachai.我目前遇到的最大问题是在测试环境中设置fixturesember models的问题.如果你实现了这个,你们中的任何人都能解释你的文件结构和设置吗?有几个网站非常简短地解释它,但我希望有一个更清楚的解释.

Par*_*ert 1

首先,一些注释可以帮助您澄清这一点并获得您正在寻找的答案。

\n\n
    \n
  1. Rails 装置和 Ember.js 装置根本不相关,Rails 与之几乎没有关系。
  2. \n
  3. Ember.js 装置可以在测试套件所需的任何文件中声明。
  4. \n
  5. Ember.js 固定装置是永久性的,无法拆除。这意味着它们会在您的测试之间保持状态。
  6. \n
  7. ember-data如果您不明确销毁记录,则会在测试之间保留记录。
  8. \n
\n\n

话虽如此,这是test_helper.coffee我的一个项目的前文件。该文件将配置 Ember 进行测试并预加载您的装置。该项目正在使用mochachai测试\xe2\x80\x94,不需要其他库。希望 CoffeeScript 不会引起问题:

\n\n
#= require_tree .\n\nEfflux.setupForTesting()\nEfflux.injectTestHelpers()\n\nEmber.Test.adapter = Ember.Test.Adapter.extend\n  exception: (error) ->\n    Ember.inspect(error)\n    throw error\n\nEfflux.Store = DS.Store.extend\n  adapter: DS.FixtureAdapter.create(simulateRemoteResponse: false)\n  revision: 13\n\nEfflux.Tag.FIXTURES = [\n  { id: 1\n    name: 'alpha'\n    group: 'symbols'\n  },\n  { id: 2\n    name: 'beta'\n    group: 'symbols'\n  },\n  { id: 3\n    name: 'gamma'\n    group: 'symbols'\n  }\n]\n
Run Code Online (Sandbox Code Playgroud)\n\n

下面是以 BDD 风格编写并使用 Tag.FIXTURES 的示例测试:

\n\n
describe '#alphaSort', ->\n  it 'combines the group and name into a single property', ->\n    Ember.run ->\n      tag = Efflux.Tag.find(3)\n      tag.one 'didLoad', ->\n        tag.set('group', 'greek')\n        tag.set('name', 'alpha')\n\n        expect(tag.get('alphaSort')).to.eq('greekalpha')\n
Run Code Online (Sandbox Code Playgroud)\n\n

需要注意的重要事项是 Ember.run 用于整个测试,并且在didLoad触发事件后数据才可用。自本文编写以来,某些数据挂钩可能已发生变化,但这是总体思路。

\n