Capybara没有检查rspec特征测试中的复选框

时间:2014-09-15 17:56:38

标签: ruby-on-rails rspec capybara rspec3

我正在尝试创建一个功能测试,其中需要检查一个复选框,无论出于什么原因,Capybara没有选中该框。

我正在使用:

rspec:3.0.4和capybara:2.4.1

当我打印出视图的快照时,不会选中该复选框。

当我在pry中运行复选框代码时,它返回字符串"选中"但是当我打印快照时,仍未检查复选框,并且我的测试未通过。我很好奇是否有另一种方法可以检查此复选框。

到目前为止,这是我目前的代码:

特征测试:

background do
  discussion_group
  @user2 = FactoryGirl.create(:user)
  add_user_to_user_role_for_group(group, @user2)
  admin_login
  add_user_to_admin_role_for_group(group, @user)
  visit groups_path
  click_on 'Email Group'
end

scenario 'sending a valid email' do
  valid_form
  expect(page).to have_content group_email_success_notification
  expect_count_of_deliveries_to_be 1
 end

宏:

def valid_form
  fill_in 'group_email_subject', with: new_text
  fill_in 'group_email_body', with: Faker::Lorem.words(200).join("\s")
  check "group_email_#{@user2.id}_"
  click_on "Send Email"
end

我测试的输出是我必须选择1个用户意味着我没有检查用户。当我在控制台中运行检查线时,我得到的是:

[10] check('group_email_10_')
=> "checked"

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我使用:

  

page.check('插入#id,.class或value')\   
例如:   
输入类型="复选框" ID =" puppy_gooddog"命名="小狗[gooddog]"值="是"   
page.check(' puppy_gooddog')或page.check('小狗[gooddog]')