9

おそらく、問題が(私ではなく)公案であるかどうか疑問に思っているアマチュアの兆候ですが、この公案を検討してください

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)>'

誰かが問題を知っていますか、または公案をスキップする方法を教えてもらえますか?

4

1 に答える 1

20

ああ、私はこの公案をテストしました。「test_calling_global_methods_without_parentheses」メソッドではなく、21行目にエラーがあります。これは、「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.

また、対処方法がわからない公案がある場合は、コメントしてください。

于 2012-08-24T02:45:46.327 に答える