0

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

我在用:

rspec:3.0.4 和水豚:2.4.1

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

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

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

功能测试:

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"

任何帮助是极大的赞赏。

4

1 回答 1

0

我会使用:

page.check('insert #id, .class, or value')\
例如:
input type="checkbox" id="puppy_gooddog" name="puppy[gooddog]" value="yes"
page.check('puppy_gooddog ') 或 page.check('puppy[gooddog]')

于 2014-09-15T18:35:07.300 回答