我有几个关于水豚的问题。我不妨在这里问一下,因为 Capybara 的github 页面中的 RDOC非常适合设置和运行它。但是 API 或可用方法列表在哪里?
第一的。每个 *_spec.rb 文件,应该scenario
只存在一次?或者在一个文件中有多个scenario
's 可以吗?
例如,在spec/request/user_spec.rb
:
require 'spec_helper'
feature 'User actions' do
background do
data = {
:first_name => 'foo',
:last_name => 'bar',
...
}
user = User.new(data, :as => :user)
user.save
end
scenario 'User can browse home page' do
visit root_path
page.should have_content('Homepage')
end
scenario 'User should not be able to visit the dashboard' do
visit dashboard_root_path
page.should have_content('You are not authorized to access this page.')
end
end
如果上面的代码结构有什么问题,或者有改进的余地。我是开放的反馈。
第二。我注意到上面的代码。如果我有config.use_transactional_fixtures = false
in spec/spec_helper.rb
,它会保存用户两次。这意味着,在我的测试数据库/用户表中,我将有 2 个名为“foo bar”的用户。这是正常的吗?
第三。我有一个带有 HTML 按钮的表单。当用户点击这个按钮时,jQuery 提交表单。我将如何使用 Capybara 进行测试?我不认为click_button "Add"
会成功。
第四。如何在 Capybara 中登录用户?我正在使用设计。会sign_in User.first
做的伎俩?我可以current_user
在Capybara访问吗?
最后,如果有人知道有关 Rspec + Capybara 的任何“入门”指南/教程。请务必提及。