2012-10-02 82 views
0

我正在使用RSPEC和水豚進行測試並獲得以下錯誤。ActionView :: Template ::水豚測試的錯誤

 Failure/Error: click_button "Upload" 
    ActionView::Template::Error: 
     undefined method `name' for nil:NilClass 
    # ./app/views/mappings/show.html.erb:164:in `block (2 levels) in _app_views_mappings_show_html_erb__2876658303246235457_70231209394300' 
    # ./app/views/mappings/show.html.erb:163:in `block in _app_views_mappings_show_html_erb__2876658303246235457_70231209394300' 
    # ./app/views/mappings/show.html.erb:95:in `_app_views_mappings_show_html_erb__2876658303246235457_70231209394300' 
    # (eval):2:in `click_button' 
    # ./spec/requests/upload_maps_spec.rb:29:in `block (2 levels) in <top (required)>' 

這是模板文件

<%= bootstrap_form_for([@mapping,@mapping_version], :html => { :multipart => true, :class => "form-horizontal" }) do |f| %> 
    <% if @mapping_version.new_record? %> 
    <%= f.file_field :mapping_file, :class => 'span6' %> 
    <% else %> 
    <%= %> 
    <%= f.file_field :mapping_file, :class => 'span6', :help_block => "Your current mapping file is #{@mapping_version.mapping_file_file_name}. You can choose another file to replace it or just leave blank to keep your original file." %> 
    <% end %> 
    <%= f.text_field :version, :class => 'span6', :help_block => "Please use a version number formatted as x.y.z where x, y and z are integers" %> 
    <%= f.text_area :notes, :class => 'span6', :rows => 5 %> 
    <%= f.actions do %> 
    <%= f.submit submit_label %> 
    <% end %> 
<% end %> 

雖然標籤「上傳」是不存在的模板文件,它在HTML顯示出來。 這是給我一個問題的測試。

it "allows user to upload new map" do 

    user = FactoryGirl.create(:user) 
    login_as(user, :scope => :user) 

    @mapping = FactoryGirl.create(:mapping) 

    login_as(user) 
    visit new_mapping_url(:host => with_maps_subdomain) 

    fill_in "Title", :with => "What The Map" 
    fill_in "Description", :with => @mapping.description 
    select('Traktor Control S4', :from => 'mapping_midi_controller_id') 
    select('Traktor Pro 2', :from => 'mapping_software_id') 
    fill_in "YouTube Video URL", :with => @mapping.video_url 

    click_button "Next step: upload the mapping file" 

    current_path.should eq("/mappings/2/mapping_versions/new") 

    attach_file('Mapping file', './spec/support/DJTT_VCI400SE_v1_1_2_TSI.zip') 
    fill_in "Version", :with => "0.1.0" 
    fill_in "Notes", :with => "Initial release" 

    click_button "Upload" 

    current_path.should eq ("/mappings/2") 

    end 

任何洞察可能發生什麼?

回答

0

我不確定,但乍一看,我會檢查你點擊「上傳」後呈現的模板,我猜是有對無名對象的名稱方法的調用,所以有事情不是由控制器

適當移交給模板,我想作爲電子書籍功能提供更清晰的測試接口see

+0

出現了,我忘創建工廠時進行關聯寫這些測試。 – rigelstpierre