2017-10-28 50 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