【问题标题】:transactional fixtures in gem development宝石开发中的交易装置
【发布时间】:2011-05-23 09:39:46
【问题描述】:

我不能在 gem(不是 Rails)开发中使用事务性固定装置吗?

我将此添加到我的 spec_helper.rb:

RSpec.configure 做 |config| config.filter_run :focus => true config.run_all_when_everything_filtered = true config.filter_run_exclude :exclude => true config.mock_with :rspec config.use_transactional_fixtures = true 结尾

但我明白了:

undefined method `use_transactional_fixtures=' for #<RSpec::Core::Configuration:0xb7313ca8> (NoMethodError)

我真的必须自己处理数据库清理工作(可能使用另一个插件),还是我可以简单地“要求”一些东西来使事务性固定装置工作?

更新

这是我目前的要求:

需要“红宝石” 需要“捆绑器” 需要'记录器' 需要'active_record' 需要'rspec' 需要'active_support'

【问题讨论】:

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


    【解决方案1】:

    use_transactional_fixtures RSpec 支持在rspec-rails 中定义。您需要包含该 Gem 或复制其功能才能使用它。

    https://github.com/rspec/rspec-rails/blob/6fa688fa38be8e5fc17beb4ab82e8c3981a9b8fd/lib/rspec/rails/fixture_support.rb#L11-16

    【讨论】:

    • 谢谢,西蒙娜。我只是在思考为什么它在 rspec-rails 中而不是在核心中。我猜它是特定于活动记录的(或者至少是特定于数据库技术的),这就是将它放入 rspec-rails 的原因。您是否建议将它用于 gem 开发(使用 ActiveRecord),还是认为在这种情况下像 database-cleaner 这样的东西更好?
    • 我觉得如果不使用rspec-rails也能集成同样的功能(因为你实际上并没有使用Rails),那就更好了。
    • 即使在添加 rspec-rails 时,它似乎也没有真正起作用。一个得到uninitialized constant Rails 错误。然后当添加require "rails" 时,事务装置的undefined method 错误再次出现。我现在将使用数据库清理器。
    猜你喜欢
    • 2022-12-09
    • 1970-01-01
    • 2011-06-06
    • 2014-07-17
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    相关资源
    最近更新 更多