Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 如果只更改注册视图,是否需要自定义Devise控制器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在capybara / rspec集成测试中有以下步骤,即只是尝试注册一个新成员.
visit new_member_registration_path
 fill_in('Name:',:with => 'Rob Doe' )
 fill_in('member_email',:with => 'rob@smith.com' )
 fill_in('member_email_confirmation',:with => 'rob@smith.com' )
 fill_in('member_password',:with => 'secret')
 fill_in('Company or Venue Name:',:with => 'Rob Inc.')
 fill_in('Contact number:',:with => '040544404440')
 click_button('Sign up')
 save_and_open_page

由于某种原因,’email’和’password’数据没有传递给DeviseRegistrations控制器(查看测试日志时它是空白的),因此导致验证失败.但是直到save_and_open_page没有rspec错误(因此正在填写这些字段).

我错过了什么?我是否需要继承DeviseRegistrations控制器?

测试Rails 3.0.7,机架测试0.5.7和rails 3.1rc1和机架测试0.6.0

解决方法

假设你的Gemfile中有调试器,这里就是你如何使用它. (这假设您正在使用Capybara的Rack驱动程序.)
# test.rb
visit new_member_registration_path
fill_in('Name:',:with => 'Rob Doe' )
debugger

终端将停止您的脚本并等待您做某事.

# Terminal
/file/path/to/you/test.rb:12
fill_in('Name:',:with => 'Rob Doe' )
(rdb:1)

在这里打开一个IRB会话:

(rdb:1) irb

你可以在这里做任何RSpec或Capybara方法:

>> current_path.should == 'foo/bar'

尝试提交表单:

>> click_button "Sign Up"
>> save_and_open_page

查看Devise在结果页面上给您的错误消息.使用Rack驱动程序,您将看不到填写的字段.在这种情况下,您可能想尝试使用SELEnium驱动程序

# test.rb
Capybara.default_driver = :SELEnium
visit new_member_registration_path

但是,您无法使SELEnium驱动程序从IRB驱动Capybara.但是,您将能够看到SELEnium将哪些表单值放入您的表单中.由于SELEnium会很快发生事情,您可以使用调试器暂停测试,同时检查SELEnium在浏览器中打开的页面.

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 如果只更改注册视图,是否需要自定义Devise控制器?全部内容,希望文章能够帮你解决ruby-on-rails – 如果只更改注册视图,是否需要自定义Devise控制器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。