代码之家  ›  专栏  ›  技术社区  ›  Ethan

如何修复运行测试时生成的警告::单元测试

  •  2
  • Ethan  · 技术社区  · 15 年前

    我的测试::单元输出中收到此警告…

    /usr/local/bin/ruby -I.:lib:test -rtest/unit -e "%w[test/functional/sessions_controller_test.rb].each { |f| require f }" | unit_diff -u
    Loaded suite -e
    Started
    .../Users/ethan/project/mtc/contactdb/app/views/sessions/new.html.haml:30: warning: multiple values for a block parameter (0 for 1)
        from /usr/local/lib/ruby/gems/1.8/gems/haml-2.0.8/lib/haml/helpers/action_view_mods.rb:142
    [...repeated eight times...]
    

    我认为相关部分是:

    /contactdb/app/views/sessions/new.html.haml:30: warning: 
      multiple values for a block parameter (0 for 1)
    

    看着我的HAML文件,我把它缩小到了这个片段(我想…)。

    - form_tag( recover_login_path, :method => 'get') do |f|
      %p
        = text_field_tag :email, '', { :size => '35', :maxlength => '255' }
    

    recover_login 是一个命名路由。

    我查看了API文档 form_tag . 似乎我的代码遵循了示例中的内容。

    2 回复  |  直到 12 年前
        1
  •  5
  •   Sarah Mei    15 年前

    这个 form_tag 块不接受任何参数。所以删除 |f| 警告应该消失。

        2
  •  6
  •   Alex Wayne    12 年前

    form_tag 仅传递表单生成器对象 |f| 使用模型对象时。

    form_tag @user, :method => :get do |f|
      f.text_field :first_name
    end
    

    但是在没有传入模型对象的情况下构造自己的表单路径,不会传入或使用块参数。

    form_tag user_path(@user.id), :method => :get do
      text_field :user, :first_name
    end