2015-11-26 175 views
0

在控制器我有这样的:Ruby on Rails的测试

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

并且测试不希望在PARAMS进入[:找]状态。

测试控制器:

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

您需要发送一个'find'参数,例如'find:true'或其他东西。把pry/etc放在你的控制器中,然后看看你的参数。 –

回答

1

看起来你想要同时拥有:A 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方法接受的参数。

+0

非常感谢! – xitryuga

1

试试这个:

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

在您的要求,您与价值"5 5 1 3 3 5"并没有find参数只发送str。您必须将所有参数放入第一个散列。

+0

非常感谢! – xitryuga