ruby-on-rails - FactoryGirl 的 RSpec 测试失败,隔离时通过

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 rspec factory-bot

我正在将一个应用程序从 Rails 3 升级到 Rails 4,并拥有一个名为 item 的模型,其架构如下:

#===Schema Information
# Table name: items
#
#type :string
#maturity: string

以及包含一系列测试的规范,但我特别遇到问题的是这个:

describe 'next_version' do
it 'should return the created_at date of the Item one version higher' do
first = FactoryGirl.create(:item, maturity: 'PRODUCTION')
second = FactoryGirl.create(:item, maturity: 'PREPRODUCTION', created_at: Time.now.in_time_zone)

expect(first.next_version_created_at.to_s)to eq second.created_at.utc.to_s)

修复,我相信很简单..只需添加..

 created_at: Time.now.in_time_zone

..到生产项目并完成。然而,如果我单独运行它,测试就会通过,并且整个规范在 Rails 3 中通过(146 个测试),但是当我现在运行整个规范时,这个和其他 3 个类似的情况会失败,除非我单独运行它们。 p>

想法?

最佳答案

你可以尝试在每次测试前重新加载工厂女孩。尝试将其添加到spec_helper.rb

config.before(:each) do
  FactoryGirl.reload
end

关于ruby-on-rails - FactoryGirl 的 RSpec 测试失败,隔离时通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30037237/

相关文章:

jquery - 如何避免 tagit() 插件中的自定义条目

ruby-on-rails - rails 和 Ahoy : No route matches [GET] "/ahoy/visits"

ruby-on-rails - 使用部分干燥新表单和编辑表单的最佳实践

ruby-on-rails - 在 View 中显示来自 api 的 JSON 响应

ruby-on-rails-3 - 设计重置密码的邮件模板

ruby-on-rails - 如何创建迁移以仅在索引存在时删除索引,而不是在不存在时抛出异常?

ruby-on-rails - 如何构建静态图像的链接?

ruby-on-rails - Rails 2.3 风格的插件和弃用警告在 Heroku 中运行任务

mysql - 部署后 Rails 4 无法连接到 mysql

ruby-on-rails - 如何将扩展加载到 Sass::Script::Functions 模块?