ProgramingTip

Ruby Koans의 test_changing_hashes에있는 개체 질문에 대한 답은 무엇입니까?

bestdevel 2021. 1. 7. 21:28
반응형

Ruby Koans의 test_changing_hashes에있는 개체 질문에 대한 답은 무엇입니까?


에서 루비 화두 , 섹션 about_hashes.rb는 다음 코드와 주석을 포함한다 :

def test_changing_hashes
    hash = { :one => "uno", :two => "dos" }
    hash[:one] = "eins"

    expected = { :one => "eins", :two => "dos" }
    assert_equal true, expected == hash

    # Bonus Question: Why was "expected" broken out into a variable
    # rather than used as a literal?
end

댓글에서 개체 질문에 대한 답을 수 없습니다. 실제로 그들이 제안한 대체를 시도한 결과는 동일합니다. 내가 알아낼 수있는 것은 가독성을위한 것이지만,이 튜토리얼의 다른 부분에서 언급 된 것과 같은 프로그래밍 조언을 묻습니다.

(이미 어딘가에서 답할 수있는 것처럼 들리지만 권위있는 것도 없습니다.)


다음과 같은 것을 사용할 수 없기 때문입니다.

assert_equal { :one => "eins", :two => "dos" }, hash

Ruby는 {...}이 블록이라고 생각합니다. 따라서 "하나로 분리"해야하지만 항상 사용할 수 있습니다.assert_equal({ :one => "eins", :two => "dos" }, hash)


여전히 다음과 같이 할 수 있습니다.

assert_equal true, { :one => "eins", :two => "dos" } == hash

사용할 수있는 또 다른 테스트는 다음과 다양합니다.

assert_equal hash, {:one => "eins", :two => "dos"}

매개 변수를 assert_equal. 이 경우 Ruby는 예외를 발생시킬 수 있습니다.

그러나 그것은 여전히 ​​나쁜 의견으로 나에게 좋지 않습니다. 별도의 변수를 사용하고 부울 조건을 테스트하면 훨씬 더 판독합니다.

참조 URL : https://stackoverflow.com/questions/7533711/what-is-the-answer-to-the-bonus-question-in-test-changing-hashes-of-ruby-koans

반응형