可能是一个业余爱好者的标志,我想知道问题是公案(而不是我),但是,考虑这个公案
def test_calling_global_methods_without_parentheses
result = my_global_method 2, 3
assert_equal __, result
end
注意,my_global方法是
def my_global_method(a,b)
a + b
end
这是它在终端中给我的提示
The answers you seek...
<"FILL ME IN"> expected but was <5>.
所以我做了
def test_calling_global_methods_without_parentheses
result = my_global_method 2, 3
assert_equal 5, result
end
我收到了这个错误
Users/mm/Sites/koans/about_methods.rb:21:in `eval': (eval):1: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '(' (SyntaxError)
assert_equal 5, my_global_method 2, 3
^
from /Users/mm/Sites/koans/about_methods.rb:21:in `test_sometimes_missing_parentheses_are_ambiguous'
from /Users/mm/Sites/koans/edgecase.rb:377:in `meditate'
from /Users/mm/Sites/koans/edgecase.rb:449:in `block in walk'
from /Users/mm/Sites/koans/edgecase.rb:460:in `block (3 levels) in each_step'
from /Users/mm/Sites/koans/edgecase.rb:458:in `each'
from /Users/mm/Sites/koans/edgecase.rb:458:in `block (2 levels) in each_step'
from /Users/mm/Sites/koans/edgecase.rb:457:in `each'
from /Users/mm/Sites/koans/edgecase.rb:457:in `each_with_index'
from /Users/mm/Sites/koans/edgecase.rb:457:in `block in each_step'
from /Users/mm/Sites/koans/edgecase.rb:455:in `catch'
from /Users/mm/Sites/koans/edgecase.rb:455:in `each_step'
from /Users/mm/Sites/koans/edgecase.rb:448:in `walk'
from /Users/mm/Sites/koans/edgecase.rb:470:in `block in <top (required)>'
有没有人知道这个问题,或者你能告诉我如何跳过一个公案吗?
答案 0 :(得分:19)
哦,我测试了这个公案。如果您注意到错误在第21行,而不是“test_calling_global_methods_without_parentheses”方法。这是“test_sometimes_missing_parentheses_are_ambiguous”方法应该是错误的。您应该纠正该方法。
def test_calling_global_methods_without_parentheses
result = my_global_method 2, 3
assert_equal 5, result # You're fine with this koan.
end
# (NOTE: We are Using eval below because the example code is
# considered to be syntactically invalid).
def test_sometimes_missing_parentheses_are_ambiguous
eval "assert_equal 5, my_global_method 2, 3" # ENABLE CHECK
# **LOOK HERE~~~ HERE IS THE ERROR YOU SEE** Just correct it.
如果有任何公案,你不知道如何处理,只需评论它。