Rails3, Cucumber, Capybara, File upload => плохое содержимое тела (EOFError)? - PullRequest
8 голосов
/ 14 сентября 2010

Мне трудно заставить работать простой тест загрузки файла.Я использую Rails 3.0.0 на ruby ​​1.9.2 с огурцом и капибарой.

Просмотр:

<%= form_tag "/upload/create", :multipart => true do %>
  <label for="file">File to Upload:</label>
  <%= file_field_tag "file" %>
  <%= submit_tag "Upload" %>
<% end %>

Шаг огурца:

When /^I upload the basic file$/ do  
  visit path_to("upload")
  path = File.join(::Rails.root, "somefile") 
  attach_file("file", path)
  click_button("Upload")
end

В моем контроллереЯ закомментировал все, кроме:

def create
  file = params[:file]
end

Фрагмент Gemfile:

group :development, :test do
  # testing with specs
  gem "ZenTest", ">= 4.3.3"
  gem "autotest"
  gem "rspec-rails", ">= 2.0.0.beta.19", :git => "git://github.com/rspec/rspec-rails.git"
  gem "rspec", :git => "git://github.com/rspec/rspec.git"
  gem "rspec-core", :git => "git://github.com/rspec/rspec-core.git"
  gem "rspec-expectations", :git => "git://github.com/rspec/rspec-expectations.git"
  gem "rspec-mocks", :git => "git://github.com/rspec/rspec-mocks.git"
  # cucumber stuff
  gem 'capybara'
  gem 'database_cleaner'
  gem 'cucumber-rails'
  gem 'cucumber'
  gem 'spork'
  gem 'launchy'    # So you can do Then show me the page
  gem 'escape_utils' # needed to fix Cucumber - http://crimpycode.brennonbortz.com/?p=42
end

Когда я пытаюсь запустить тест, я получаю:

(::) failed steps (::)
bad content body (EOFError)
<internal:prelude>:10:in `synchronize'

Я ценю любую помощь или понимание.Благодаря.

Ответы [ 2 ]

2 голосов
/ 17 сентября 2010

Это оказалось проблемой с речевым тестом и, вероятно, не будет проблемой для большинства, пока все больше людей не примут Rails3 и Ruby 1.9.x.

Обновление рейк-теста до текущей главной ветви устранило проблему. Я не уверен, когда реечный тест будет включать эти изменения в гем.

Смотрите также: groups.google.com / группа / cukes / browse_thread / резьба / 5028306893c2c54a

0 голосов
/ 15 сентября 2010

У меня нет ответа, но я работаю над той же проблемой в той же среде - cukes, capybara, rails 3, 1.9.2 .... если я выясню это, то сообщу вам. Вы когда-нибудь думали о публикации в группе Google по огурцам или в группе Google Rails? Если вы этого не сделаете, я соберу свой акт и не смогу выяснить, отправлю ли сообщение одному из них.

Кроме того, кажется, что у webrat есть метод для attach_file (), и поэтому, когда я генерировал огурец без капибары, у него был метод следствия в web_steps.rb, но после того, как я добавил капибару и регенерированный огурец, он исчез .... 1003 *

...