这来自Ruby Koans中的test_symbols_cannot_be_concatenated练习。之前的练习使用了assert_equal测试。这是开悟之路上的第一个assert_raise。
def test_symbols_cannot_be_concatenated
assert_raise(_____) do
:cats + :dogs
end
end发布于 2011-02-09 18:48:26
我猜是NoMethodError,因为尝试对两个符号求和或连接是没有意义的。
发布于 2011-04-15 05:04:29
我收到的错误消息是(为了可读性,添加了换行符):
[] exception expected, not Class: <NoMethodError>
Message: <"undefined method `+' for :cats:Symbol">
---Backtrace---
/Ruby_on_Rails/koans/about_symbols.rb:89:in
`block in test_symbols_cannot_be_concatenated' 按照我认为我已经建立的寻找"expected I“的模式,我认为答案应该是"exception”。这显然是行不通的,但根据noodl的回答,我意识到对于assert_raise()来说,线索就是期望被调用的类,在本例中是<NoMethodError>。
这似乎与APIdock上的文档一致,该文档表明每个args都被评估为__check_exception_class
https://stackoverflow.com/questions/4943776
复制相似问题