我在Ruby Koans中遇到以下错误:
AboutHashes#test_accessing_hashes_with_fetch已经破坏了你的业力。
师父说: 你还没有达到启蒙。 我感到沮丧。不要害怕寻求帮助。
你寻求的答案...... 所需的课程或模块
请冥想以下代码: /home/s/Downloads/github/rubykoans/about_hashes.rb:26:in`test_accessing_hashes_with_fetch'
有问题的行是以下方法的一部分:
def test_accessing_hashes_with_fetch
hash = { :one => "uno" }
assert_equal "uno", hash.fetch(:one)
assert_raise(nil) do
hash.fetch(:doesnt_exist)
end
正如你所看到的,它要求一个类或模块,所以我很困惑,因为这不是我以前在Koans中遇到的错误。
答案 0 :(得分:6)
问题在于以下几点:
assert_raise(nil) do
hash.fetch(:doesnt_exist)
end
assert_raise
测试宏期望它的参数是一类Exception。你提供了零。
要跳到答案,使用哈希中不存在的密钥调用散列上的fetch raise
KeyError
例外。所以测试应该有这个:
assert_raise(KeyError) do
hash.fetch(:doesnt_exist)
end