Rails测试:跨文件共享RSpec数据

时间:2018-02-20 23:26:30

标签: ruby-on-rails ruby rspec rspec-rails

... SO

我目前正致力于缩短项目的构建时间,特别是我们的测试套件运行时间。

我们确实有一些写得不好的测试正在let绑定中创建数据库对象(因此它们会在每次测试中保存),这些测试有机会被重构为before(:context)after(:context) let(:object) { @object.clone }。我们还有一些写得不好的FactoryGirl(现在是FactoryBot?)工厂,他们对他们创建的对象(我知道build_stubbed)有点咄咄逼人,可以改进。

解决这些问题将是朝着正确方向迈出的一步,但我有兴趣为我的团队的共享测试模型创建一个更根本的变化,因为我们系统中的许多文件需要相同的核心设置(即许多before(:context)块看起来完全相同)。

我认为如果我的团队能够db/seeds.rb保持最新状态并且在rails_helper.rbspec_helper.rb中,在运行测试套件之前加载种子并暴露,这将是一个伟大的胜利核心数据通过实例变量。

然后测试可以做到...... let(:core_object) { @core_object.clone },它们可以立即使用(有点神奇,是的)。我认为我们必须非常小心这些实例变量名称,以确保它们不与单个文件实例变量冲突。

我想知道是否有其他人尝试了类似的东西,或者对如何进一步干扰我的团队的常见测试设置有任何建议,谢谢。

0 个答案:

没有答案