2015-11-26 222 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