Ruby on rails 水豚-覆盖一个值

Ruby on rails 水豚-覆盖一个值,ruby-on-rails,ruby,rspec,capybara,Ruby On Rails,Ruby,Rspec,Capybara,我有以下有趣的场景: 测试系统,在我的例子中是ActiveMerchant的BogusGateway,需要“伪造”类型的信用卡才能有效。当然,这不是我向用户提供的选项之一 在我的请求规范中,我试图用“伪造”覆盖visa的原始值,但我不清楚它是如何实现的。我试过类似的方法,但没有成功: # setting the value for the visa card to be 'bogus' find(:xpath, "//input[@id='billing_account_card_type_vi

我有以下有趣的场景:

测试系统,在我的例子中是ActiveMerchant的BogusGateway,需要“伪造”类型的信用卡才能有效。当然,这不是我向用户提供的选项之一

在我的请求规范中,我试图用“伪造”覆盖visa的原始值,但我不清楚它是如何实现的。我试过类似的方法,但没有成功:

# setting the value for the visa card to be 'bogus'
find(:xpath, "//input[@id='billing_account_card_type_visa']").set "bogus"

# then clicking on the radio button...
choose "billing_account_card_type_visa"

任何帮助都将不胜感激。

您可以使用水豚的方法:


如果用户不能选择这个选项,水豚应该怎么做

与其模仿无法执行的用户操作,不如使用无效参数发出请求:


post”/my\u billing\u path“,:billing\u account=>{:card\u type=>“bogus}

使用以下数字通过验证,并使用capybara和bogus网关测试成功的交易:

  • VISA=4111111111
  • 万事达卡=5500000000000004
  • 美国运通=3400000009
  • 发现=60110000000004

我相信这是行不通的,因为填充方法只适用于文本字段/区域。这里我们处理单选按钮,因此使用“选择”方法。哦,我明白了。我不太确定,也许@zettec的答案会有所帮助。
fill_in("billing_acount_card_type_visa", :with => "bogus")
choose("billing_account_card_type_visa")