加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 如何在Capybara中使用测试数据库?

发布时间:2020-12-17 04:17:48 所属栏目:百科 来源:网络整理
导读:我正在使用RSpec,Spork,Capybara和Capybara Mechanic为使用Facebook连接的注册路径编写集成测试.它通过注册正确导航,但新用户是在我的开发数据库而不是测试数据库中创建的. RSpec设置为使用测试环境,我已经确认我在我的规范中运行的任何模型方法都打到了测试
我正在使用RSpec,Spork,Capybara和Capybara Mechanic为使用Facebook连接的注册路径编写集成测试.它通过注册正确导航,但新用户是在我的开发数据库而不是测试数据库中创建的.

RSpec设置为使用测试环境,我已经确认我在我的规范中运行的任何模型方法都打到了测试数据库,但所有UI操作都达到了开发阶段.

这是我的测试:

it "go through registration path" do
  print "RAILS_ENV: #{Rails.env}n" # correctly prints 'test'
  print "1) #{User.count}n" # correctly shows the user count in my test database (zero)

  Capybara.current_driver = :mechanize

  visit root_path
  click_link "register"

  # Fill in Facebook Connect form
  fill_in 'email',:with => "bob@example.com"
  fill_in 'pass',:with => "password"
  click_button "Log In"

  print "2) #{User.count}n" # still shows zero users in the test database

end

在那次测试之后,我可以查看我的开发数据库,??并在那里创建了新用户.

我也尝试过设置database_cleaner而且没有帮助.

任何人都知道我需要做什么才能让水豚进入测试数据库?

铁轨3.1.3

rspec 2.7.0

spork 0.9.0

Capybara 1.1.0

capybara-mechanize 0.3.0.rc3

解决方法

问题是我有一个单独的开发服务器与测试并行运行,测试默认为相同的地址/端口.我通过在spec_helper.rb中添加以下内容来解决这个问题,因此Capybara会使用不同的端口.
Capybara.run_server = true 
Capybara.server_port = 7000
Capybara.app_host = "http://localhost:#{Capybara.server_port}"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读