cabybara-webkit + rspec:记录不可用
Posted
技术标签:
【中文标题】cabybara-webkit + rspec:记录不可用【英文标题】:cabybara-webkit + rspec: Records are not available 【发布时间】:2011-08-30 21:06:30 【问题描述】:我是集成测试的新手,虽然我已经为我的模型和控制器做了很多单元测试。但现在我想测试整个堆栈。 (我不想用Cucumber,因为没有客户,我可以看代码)
这是我的(简化的)规范
describe ArticlesController, "#show" do
before do
@article = Factory :article, :title => "Lorem ipsum"
end
it "should show the article page" do
visit article_path(:id => @article)
page.should have_content("Lorem ipsum")
end
end
规范通过了,但是一旦我将:js => true
添加到it "should show the article page", :js => true do
,ActiveRecord::RecordNotFound
就会被抛出。如果我在我的配置中禁用use_transactional_fixtures
,它会再次工作,但这会破坏很多其他测试。是否有其他解决方案,或者我可以仅为我的集成测试禁用 transactional_fixtures?
感谢阅读! :)
【问题讨论】:
【参考方案1】:您需要为集成测试设置use_transactional_fixtures
= false。正如您所发现的,这会导致其他假设您的表开始时为空的测试出现问题。
您可以试试database_cleaner gem。 spec_helper
中的典型配置如下所示:
RSpec.configure do |c|
c.before(:suite) do
DatabaseCleaner.start
end
c.after(:suite) do
DatabaseCleaner.clean
end
end
【讨论】:
谢谢!但我不得不使用.before(:each)
和.after(:each)
。以上是关于cabybara-webkit + rspec:记录不可用的主要内容,如果未能解决你的问题,请参考以下文章
ruby [rspec]“使用RSpec测试Rails程序”笔记
RSpec vs Cucumber(RSpec 故事)[关闭]
失败/错误:需要'rspec/rails'类型错误:错误的参数类型类(预期模块)Rspec V3
rails-rspec 错误无法加载此类文件 -- rspec/core/formatters/progress_formatter