gpt4 book ai didi

ruby-on-rails - DatabaseCleaner + RSpec : what is the correct configuration?

转载 作者:行者123 更新时间:2023-12-03 11:55:52 24 4
gpt4 key购买 nike

我包括database_cleaner我的 Rails 应用程序中的 gem 。遵循 git repo 中给出的示例,并在 spec_helper 中包含以下代码:

方法一

  config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end

config.around(:each) do |example|
DatabaseCleaner.cleaning do
example.run
end
end

当我运行 rspec我得到错误 NoMethodError:undefined method 'cleaning' for DatabaseCleaner:Module .

所以我做了一些研究,发现我可以替换 config.around上面的 block 是这样的:

方法二
config.before(:each) do
DatabaseCleaner.start
end

config.after(:each) do
DatabaseCleaner.clean
end

或者

方法 3
config.around(:each) do |example|
DatabaseCleaner.start
example.run
DatabaseCleaner.clean
end

方法 2 和 3 都运行良好。
我还查看了 database_cleaner 的 git repo,发现 cleaning方法实际上存在并且使用以下代码:
def cleaning(&block)
start
yield
clean
end

这与我在示例 3 中所做的完全相同。如果它确实存在,那么为什么它无法访问?我在这里错过了什么吗?还要设置吗?
还是方法 2 或 3 更可取?

最佳答案

终于找到答案了
database_cleaner gem 添加了 cleaning就在上周,还更新了相同的文档。但我从 ruby​​gems.org 获取的最新 gem 版本 1.2.0 中没有此更改。 Approach 1当我从 github 获取 gem 时,效果很好如下:

gem 'database_cleaner', git: 'git@github.com:DatabaseCleaner/database_cleaner.git'

关于ruby-on-rails - DatabaseCleaner + RSpec : what is the correct configuration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21493970/

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