oli*_*nes 6 ruby-on-rails cucumber formtastic capybara
以下formtastic表单复选框字段集:
<%= semantic_form_for @store do |f| %>
<%= f.inputs do %>
<%= f.input :services, :as => :check_boxes, :collection => Service.all %>
<% end -%>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
发送错误的参数:使用Capybara进行Cucumber测试的服务,使测试失败,而实际的应用程序发送正确的应用程序,处理正常:
#cucumber steps using the boiler_plate capybara web_steps.rb:
Given a "Mail Order" service
...(steps for rest of the form)...
When I check "Mail Order"
And I press "Create Store"
Then I should see "Store was successfully created."
And I should see "Mail Order"
#params sent by cucumber
"store"=>{"services"=>["[\"4d8247ed7f5bfd2275000004\"]"]
#params sent by app on manual test
"store"=>{"services"=>["4d8247ed7f5bfd2275000004"]}
Run Code Online (Sandbox Code Playgroud)
虽然html表单本身在两种情况下都以相同的方式呈现:
<input id="store_services_4d8247ed7f5bfd2275000004" name="store[services][]" type="checkbox" value="4d8247ed7f5bfd2275000004" />
Run Code Online (Sandbox Code Playgroud)
在请求参数构建期间的某处似乎,当Cucumber/Capybara提交时,该字段的表单键/值对将被不同地解析.
有人遇到过这个吗?
回答我自己的问题:
从 Capybara 的作者 Jonas Nicklas 那里得到了指导,这让我找到了这个尚未提交的机架测试补丁
现在我只使用补丁所在的分支和分支:
gem 'rack-test', :git => 'https://github.com/econsultancy/rack-test.git', :branch => 'econsultancy-20110119'
Run Code Online (Sandbox Code Playgroud)
这就成功了。我想这个补丁很快就会被合并,因为它是几个月前提交的。
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |