Ruby on rails测试

时间:2015-11-26 17:01:54

标签: ruby-on-rails ruby

在控制器中我得到了这个:

def output
  if params[:find]
    result
  elsif params[:print_db]
    print_db
  end
end

测试不想进入params [:find]条件。

测试控制器:

test "should get 5 5 1 for view with 5 5 1 3 3" do
  get :output, {str: "5 5 1 3 3 5"}, :params => 'find'
  assert_equal assigns[:result], "5, 5, 1"
end

拜托,帮助我!

2 个答案:

答案 0 :(得分:1)

您似乎希望同时拥有:params[:str]params[:find]参数。

变化:

get :output, {str: "5 5 1 3 3 5"}, :params => 'find'

到:

get :output, str: '5 5 1 3 3 5', find: true

因为您的版本将:params => 'find'部分传递到session变量而不是params。您可能希望在Rails' guide中阅读get方法接受的参数。

答案 1 :(得分:1)

试试这个:

get :output, { str: "5 5 1 3 3 5", find: true }

在您的请求中,您只发送str,其中包含值"5 5 1 3 3 5"且没有find参数。您必须将所有参数放入第一个哈希值。