您绝对可以使用 Capybara 和 Rspec 实现这一目标。
按照此处的说明安装水豚https://github.com/jnicklas/capybara#using-capybara-with-rspec - 提示,确保命名您指定的目录features
然后只需使用 capybara 来测试驱动您的应用程序
所以为了测试你的注册这个例子应该可以工作,显然你需要根据你的应用程序调整参数和路由。
require 'spec_helper'
feature 'Signing up' do
scenario 'creates a new user' do
visit '/users/sign_up'
password = 'samplepassword'
fill_in 'First name', with: 'Testy'
fill_in 'Last name', with: 'McTester'
fill_in 'Email', with: 'testy@example.com'
fill_in 'Password', with: password
fill_in 'Password confirmation', with: password
click_link 'Sign up'
expect(page).to have_content 'You have signed up successfully'
end
end
Devise 还具有测试助手,您可以在测试应用程序的其他区域时使用它们https://github.com/plataformatec/devise#test-helpers
这些对于确保您在各个页面上放置的任何限制都是正确的特别有用。您可以通过测试如果用户登录或具有错误角色等会发生什么来测试此行为。