RoR 教程 - 直接测试 full_title 助手
RoR Tutorial - A direct test the full_title helper
我正在做 RoR 教程第 5 章练习,我似乎无法弄清楚用什么文本代替 "FILL_IN" 我已经尝试通过匹配来阅读错误消息实际与预期。我究竟做错了什么?另外,有人可以解释 <expected>
和 <actual>
在这个测试中是如何工作的吗,因为我在任何地方都看不到 "expected" 或 "actual" 这两个词。
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
test "full title helper" do
assert_equal full_title, "Kim's Cool Rails Site"
assert_equal full_title("Help"), "Kim's Cool Rails Site | Help"
end
end
谁能解释一下 <expected>
和 <actual>
是如何工作的
通常尖括号之间的术语,如 <expected>
和 <actual>
表示需要替换的值。在这种情况下,它提到:
assert_equal <expected>, <actual>
给出了assert_equal
方法所取参数的描述。我们打算用我们的 real-life 值替换它们。例如,
result = 1 + 1
assert_equal 2, result
在这里,我们将 <expected>
替换为 2
,并将 <actual>
替换为 result
,以测试 1 + 1 = 2,正如我们预期的那样。
我似乎想不出用什么文字来代替 "FILL_IN"
因此您代码中的相关行是:
assert_equal full_title, FILL_IN
assert_equal full_title('help'), FILL_IN
在这两行中,您应该将 FILL_IN
替换为前一个参数的任何结果 - 在本例中,full_title
和 full_title('help')
所以,如果full_title
给出"Kim's Cool Rails Site",那么第一行应该是:
assert_equal full_title, "Kim's Cool Rails Site"
如果full_title('Help')
给出"Kim's Cool Rails Site | Help",那么第二行应该是:
assert_equal full_title('Help'), "Kim's Cool Rails Site | Help"
** 更新 **
所以你得到的错误基本上是说:我们希望看到 "Ruby on Rails Tutorial Sample App" 而不是我们说 "Kim's Cool Rails Site".
在我给出的例子中,我只是用"Kim's Cool Rails Site"作为例子,因为我不知道你网站的实际标题。您需要将 "Kim's Cool Rails Site" 替换为您网站的实际标题(即 full_path
return)。因此,从错误消息来看,第一行所需的确切代码将是:
assert_equal full_title, "Ruby on Rails Tutorial Sample App"
您需要自己找出第二行所需的确切文本,但基本上只需将 "Kim's Cool Rails Site | Help" 替换为您期望的 full_title('Help')
到 [=71] =].
我相信这就是您想要的....
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
test "full title helper" do
assert_equal full_title, "Ruby on Rails Tutorial Sample App"
assert_equal full_title("Help"), "Help | Ruby on Rails Tutorial Sample App"
end
end
我正在做 RoR 教程第 5 章练习,我似乎无法弄清楚用什么文本代替 "FILL_IN" 我已经尝试通过匹配来阅读错误消息实际与预期。我究竟做错了什么?另外,有人可以解释 <expected>
和 <actual>
在这个测试中是如何工作的吗,因为我在任何地方都看不到 "expected" 或 "actual" 这两个词。
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
test "full title helper" do
assert_equal full_title, "Kim's Cool Rails Site"
assert_equal full_title("Help"), "Kim's Cool Rails Site | Help"
end
end
谁能解释一下 <expected>
和 <actual>
是如何工作的
通常尖括号之间的术语,如 <expected>
和 <actual>
表示需要替换的值。在这种情况下,它提到:
assert_equal <expected>, <actual>
给出了assert_equal
方法所取参数的描述。我们打算用我们的 real-life 值替换它们。例如,
result = 1 + 1
assert_equal 2, result
在这里,我们将 <expected>
替换为 2
,并将 <actual>
替换为 result
,以测试 1 + 1 = 2,正如我们预期的那样。
我似乎想不出用什么文字来代替 "FILL_IN"
因此您代码中的相关行是:
assert_equal full_title, FILL_IN
assert_equal full_title('help'), FILL_IN
在这两行中,您应该将 FILL_IN
替换为前一个参数的任何结果 - 在本例中,full_title
和 full_title('help')
所以,如果full_title
给出"Kim's Cool Rails Site",那么第一行应该是:
assert_equal full_title, "Kim's Cool Rails Site"
如果full_title('Help')
给出"Kim's Cool Rails Site | Help",那么第二行应该是:
assert_equal full_title('Help'), "Kim's Cool Rails Site | Help"
** 更新 **
所以你得到的错误基本上是说:我们希望看到 "Ruby on Rails Tutorial Sample App" 而不是我们说 "Kim's Cool Rails Site".
在我给出的例子中,我只是用"Kim's Cool Rails Site"作为例子,因为我不知道你网站的实际标题。您需要将 "Kim's Cool Rails Site" 替换为您网站的实际标题(即 full_path
return)。因此,从错误消息来看,第一行所需的确切代码将是:
assert_equal full_title, "Ruby on Rails Tutorial Sample App"
您需要自己找出第二行所需的确切文本,但基本上只需将 "Kim's Cool Rails Site | Help" 替换为您期望的 full_title('Help')
到 [=71] =].
我相信这就是您想要的....
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
test "full title helper" do
assert_equal full_title, "Ruby on Rails Tutorial Sample App"
assert_equal full_title("Help"), "Help | Ruby on Rails Tutorial Sample App"
end
end