2017-10-28 162 views
0

在練習中,爲full_title助手編寫測試,並且必須填寫代碼。這裏是測試Ruby on Rails教程,5.3.4練習,如何使用assert_equal方法

require 'test_helper' 

class ApplicationHelperTest < ActionView::TestCase 
    test "full title helper" do 
    assert_equal full_title,   FILL_IN 
    assert_equal full_title("Help"), FILL_IN 
    end 
end 

assert_equal方法如何在這裏工作?我很困惑我應該爲預期和實際投入什麼。

回答

0

expected是值表示正確的行爲,而actual是實際返回的內容。如果full_title是你正在測試的東西,那麼它應該是actual參數,你輸出的方法應該是expected參數。

0

你想使用這種格式的斷言來測試:

assert_equal(expected, actual, [msg]) 

所以,你要測試,在這種情況下,預期值「full_title」將等於實際值。最後一部分[msg]是一個可選的消息參數,如果您的測試失敗,您可以添加這些消息來澄清您的反饋。 FILL_IN部分是您插入實際值的地方。所以,如果full_title"Welcome To My Site"一個值,你會寫一個斷言像測試值:

assert_equal full_title, "Welcome To My Site" 

而如果full_title("Help")值應"Welcome To My Site | Help" 那麼你會測試它像這樣:

assert_equal full_title, "Welcome To My Site | Help" 

如果您可以包含可選的消息參數,使您的失敗消息更清晰一些:

assert_equal full_title, "Welcome To My Site | Help", "This was not the correct title" 

,如果測試失敗,該消息將顯示爲日誌的一部分。

有一個Rails指南,詳細介紹如何使用斷言:http://guides.rubyonrails.org/testing.html