在练习中,将为full_title助手编写测试,并且必须填写代码。这是测试
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 :(得分:0)
expected
是表示正确行为的值,actual
是实际返回的内容。如果您正在测试full_title
,那么它应该是actual
参数,并且您应该使用expected
参数的输出。
答案 1 :(得分:0)
您想使用以下格式测试断言:
assert_equal( expected, actual, [msg] )
所以你要测试预期值&#34; full_title&#34;在这种情况下将等于实际值。最后一部分[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
答案 2 :(得分:0)
我也在阅读本教程,并注意到与MisterCal的答案在如何编写测试方面略有不同。
assert_equal( expected, actual, [msg] )
是正确的格式,但是他的示例使用的是full_title方法调用,这是您得到的实际结果。
该字符串下面是期望的值,而辅助方法调用是您在调用它时获得的实际值。不要忘记使用参数调用该方法,否则将触发您先前设置的默认参数
assert_equal "Welcome To My Site | Help", full_title("Help"), "This was not the correct title"