2012-06-20 2 views
6

Sinatra에서 some_object.class.name == "해시"를 테스트 할 수있었습니다. 이제, 제출 한 후, 그 코드를 테스트하기 위해 플러스 == "ActiveSupport :: HashWithIndifferentAccess"코드를 사용해야합니다. 그 이유는 무엇이며, 비교가 이루어지는 모든 장소를 업데이트해야합니까? 아니면 더 쉬운 방법이 있습니까? 덕분에해시 유형에 대한 레일 테스트

ActiveSupport::HashWithIndifferentAccess에 워드 프로세서

답변

15

는 :

이 클래스는 반신 반의하는 의미를 가지고 있으며, 사람들이 PARAMS 쓸 수 있도록 우리는 그것을 가지고 [: 키] 대신 PARAMS [ '키'] 그들은 같은 얻을 두 키의 값.

그래서 해시 (Hash)에서 상속 된 클래스이므로 기호 또는 문자열을 키로 전달하고 둘 중 하나에 대해 동일한 값을 반환 할 수 있습니다.

그냥 다음을 사용할 수 있습니다, 수정 (및 청소) 테스트를하려면이 해시 또는 해시의 후손 인 경우에

some_object.is_a? Hash 

이 true를 돌려줍니다.

+0

위대한 작품입니다. – dt1000