gpt4 book ai didi

ruby-on-rails - capybara 和 Rspec。 capybara 不在测试中呈现页面,在 Rails 中使用访问或获取方法

转载 作者:行者123 更新时间:2023-12-04 05:52:52 25 4
gpt4 key购买 nike

我是一名初学者,正在学习 Ruby on Rails,但我在让我的测试正常运行时遇到了问题。我正在使用 rspec 和 capybara 。问题是 Capybara 没有呈现页面或者它没有到达正确的页面。当我执行时,页面在浏览器中正确打开:$rails s。但是当我用 save_and_open_page 测试时,html 是空的。

我的规范

以下是我的第一个 PagesController 规范:

 require 'spec_helper'

describe PagesController do
describe "GET 'home'" do
it "returns http success" do
visit pages_home_path
save_and_open_page #at this point it opens the a blank html page
end
end
end

我的 Controller 规范,这会打开一个空白页面。

我尝试了 Pagescontroller 规范的替代语法:

require 'spec_helper'

describe PagesController do

describe "GET 'home'" do
it "returns http success" do
get :home
response.should render_template('home')
response.should have_content("home") #it fails here
end
end
end

这在控制台中显示以下错误失败:

1) PagesController GET 'home' 返回 http 成功 失败/错误:response.should have_content("home") 期望在“#”中有文本“home” # ./spec/controllers/pages_controller_spec.rb:10:in `block (3 levels) in '

在 1.91 秒内完成1 个例子,1 个失败

其他配置:

在 spec_helper 中,我添加了以下行,其余部分保持不变。

require 'capybara/rspec'

* gem 文件:*

    gem 'rails', '3.1.0'
group :development, :test do
gem 'autotest-rails'
gem 'sqlite3'
gem 'ruby-debug19', :require => 'ruby-debug'
gem 'cucumber-rails', :require => false
gem 'cucumber-rails-training-wheels'
gem 'database_cleaner'
gem 'capybara'
gem 'launchy'
gem 'rspec-rails'
gem 'simplecov'
gem 'rspec-core', '2.8.0'
end
group :assets do
gem 'therubyracer'
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end

gem 'jquery-rails'
gem 'haml'

我还没有安装 Webrat 并确认它不在我的 Gem 列表中。感谢您的帮助。

最佳答案

来自documentation看来您应该将规范标记为 feature 或将它们放入 spec/features 文件夹中。

对我来说,您似乎拥有 Controller 测试的默认行为,即呈现任何内容。您可以覆盖它,但我认为将集成测试与 Controller 测试分开会更好。

关于ruby-on-rails - capybara 和 Rspec。 capybara 不在测试中呈现页面,在 Rails 中使用访问或获取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13564475/

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