Ruby 배경에서 왔으며 JSON API 끝점을 검색 한 객체와 상호 작용하는 자바 스크립트 라이브러리를 테스트하려고합니다.객체 속성의 임의적 조롱
다음 Ruby를 자바 스크립트로 어떻게 다시 만들 수 있습니까?
class ArbitraryMock
def initialize(property_hash)
@property_hash = property_hash
end
def method_missing(*args)
@property_hash[args.first] || ''
end
end
EDIT : method_missing은 메소드가 존재하지 않을 때마다 호출되는 동적 메소드입니다. 이 메서드의 기본 버전은 NoMethodError를 발생시킵니다 (Javascript는 내가 정의하지 않은 값을 반환 함). 위에서와 같은 방법으로 메서드를 재정의함으로써, 다음과 같은 일을 수행 할 수 있습니다
some_object = ArbitraryMock.new(foo: 'bar')
some_object.foo
=> 'bar'
some_object.bang
=> ''
method_missing의 기능은 무엇입니까? 이 컨텍스트에서는 속성 값 또는 빈 문자열을 반환하는 데 사용됩니까? getters/setters로 뭔가를 할 수 있습니다. – Andy
제 질문의 수정 된 버전을 확인하십시오. – HaaR
답변을 업데이트했습니다. 나는 그것이 약간의 사용이되기를 바랍니다. – Andy