2
내가 원하는 mock a class with Ruby.루비 : const_set 외부 블록?
상용구 코드를 처리 할 방법을 어떻게 작성합니까?
다음 코드 :
module Mailgun
end
module Acani
def self.mock_mailgun(mock)
temp = Mailgun
const_set(:Mailgun, mock)
p Mailgun
yield
ensure
const_set(:Mailgun, temp)
end
end
Acani.mock_mailgun('mock') { p Mailgun }
지문 :
"mock"
Mailgun
여기 무슨 일이야? Mailgun
가 블록 내부의 원래 값인 이유는 무엇입니까? 이것은 Ruby 바인딩과 관련이 있습니까?
루비 버전 : 각 const_set
전에 Object.
퍼팅 2.1.1p76