我用來將OpenTok集成到我的Rails應用程序中的gem位於:https://github.com/opentok/Opentok-Ruby-SDK。我基於此示例的應用程序的核心:http://www.tokbox.com/blog/building-a-video-party-app-with-ruby-on-rails。OpenTok對象的Stubbing實例方法
在代碼的相關部分,我在config_opentok方法創建@opentok對象:
def config_opentok
if @api_key.nil? or @api_secret.nil?
if Rails.env.development?
@api_key = API_KEY
@api_secret = API_SECRET
else
@api_key = ENV['API_KEY']
@api_secret = ENV['API_SECRET']
end
end
if @opentok.nil?
@opentok = OpenTok::OpenTokSDK.new(@api_key, @api_secret)
end
end
而且我用下面的代碼創建一個會話:
config_opentok
if Rails.env.development?
session = @opentok.create_session('localhost')
else
session = @opentok.create_session(request.remote_addr)
end
麻煩的是,create_session似乎拋出一個錯誤
SocketError: getaddrinfo: nodename nor servname provided, or not known
每當我運行我的Rspec測試機智互聯網連接。所以我想存根該方法,以便它只返回一個散列{:sessionId => 1}。但是我很難弄清楚如何對方法進行存根。我不能只存根OpenTok模塊或OpenTok :: OpenTokSDK類。我會如何去解決create_session方法的問題?