2015-12-15 24 views
1

我正在運行Hartl Rails Tutorial並已完成9.6​​0,9.61,9.62中的練習,這些練習要求用新的部分重構新的和編輯的表單代碼。該表格現在使用「提供」供應按鈕上的文字爲:Rails集成測試以選擇是否存在正確的按鈕文本

<% provide(:button_text, 'Create my account') %> 

這是在網頁上呈現與「產量」爲:

<%= f.submit yield(:button_text), class: "btn btn-primary" %> 

雖然不是工作的一部分,我不要試圖寫一個集成測試來測試每個頁面按鈕上的正確文本。例如這段代碼測試的註冊表單頁面:

test "signup page" do 
    get signup_path 
    assert_select "title", full_title("Sign up") 
    assert_select "input[type=submit]", value: "Create my account" 
end 

不過,我一直無法找出正確的代碼,選擇按鈕並指定按鈕文本正確的值。我已經使按鈕文本不正確,試圖使測試失敗,但沒有找到正確的測試語法失敗成功;-)

Documentation對於ActionDispatch沒有一個特定的示例,有助於此測試案件。

回答

1

好的找到了我自己的答案。正確選擇按鈕並驗證文本:

test "signup page" do 
    get signup_path 
    assert_select "title", full_title("Sign up") 
    assert_select "input[value=?]", "Create my account" 
end 

我學到的是:1.元素的屬性應該用方括號括起來。 2.使用'attribute =?'將該屬性值與您正在測試的值匹配:在這種情況下,「創建我的帳戶」