繁体   English   中英

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

[英]Ember.js/Rails integration testing with fixtures

我正在尝试为我的ember.js rails应用程序设置测试环境,并决定使用带有mochachai Konacha 我目前ember models的最大问题是在测试环境中为我的ember models设置fixtures 如果你实现了这个,你们中的任何人都能解释你的文件结构和设置吗? 有几个网站非常简短地解释它,但我希望有一个更清楚的解释。

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

  1. Rails灯具和Ember.js灯具根本没有关系,Rails与它没什么关系。
  2. Ember.js灯具可以在您的测试套件所需的任何文件中声明。
  3. Ember.js固定装置是永久性的,不能拆卸。 这意味着他们在测试之间保持状态。
  4. 如果你没有明确地销毁它们, ember-data将在测试之间保持记录。

test_helper.coffee ,这是我之前的一个项目的test_helper.coffee文件。 该文件将配置Ember进行测试并预加载灯具。 该项目使用mochachai进行测试 - 不需要其他库。 希望CoffeeScript不会导致问题:

#= require_tree .

Efflux.setupForTesting()
Efflux.injectTestHelpers()

Ember.Test.adapter = Ember.Test.Adapter.extend
  exception: (error) ->
    Ember.inspect(error)
    throw error

Efflux.Store = DS.Store.extend
  adapter: DS.FixtureAdapter.create(simulateRemoteResponse: false)
  revision: 13

Efflux.Tag.FIXTURES = [
  { id: 1
    name: 'alpha'
    group: 'symbols'
  },
  { id: 2
    name: 'beta'
    group: 'symbols'
  },
  { id: 3
    name: 'gamma'
    group: 'symbols'
  }
]

这是一个用BDD样式编写并使用Tag.FIXTURES的示例测试:

describe '#alphaSort', ->
  it 'combines the group and name into a single property', ->
    Ember.run ->
      tag = Efflux.Tag.find(3)
      tag.one 'didLoad', ->
        tag.set('group', 'greek')
        tag.set('name', 'alpha')

        expect(tag.get('alphaSort')).to.eq('greekalpha')

需要注意的重要事项是Ember.run用于整个测试,并且在触发didLoad事件之后数据才可用。 自写入以来,一些数据钩子可能已经改变,但这是一般的想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM