gpt4 book ai didi

javascript - 使用固定装置的 Ember.js/Rails 集成测试

转载 作者:数据小太阳 更新时间:2023-10-29 05:36:15 26 4
gpt4 key购买 nike

我正在尝试为我的 ember.js rails 应用程序设置一个测试环境,并决定使用 Konachamochachai。我目前遇到的最大问题是在测试环境中为我的 ember 模型 设置fixtures。如果你实现了这个,你们中的任何人都能够解释你的文件结构和设置吗?有一些网站对其进行了非常简要的解释,但我更希望有一个更清晰的解释。

最佳答案

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

  1. Rails fixtures 和 Ember.js fixtures 完全没有关系,Rails 与它几乎没有关系。
  2. Ember.js fixtures 可以在您的测试套件需要的任何文件中声明。
  3. Ember.js 固定装置是永久性的,无法拆除。这意味着它们会在您的测试之间保持状态。
  4. ember-data 将在测试之间保留记录,前提是您没有明确销毁它们。

综上所述,这是我的一个项目中以前的 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 事件后才可用。一些数据 Hook 可能在本文编写后发生了变化,但这是总体思路。

关于javascript - 使用固定装置的 Ember.js/Rails 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19520965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com