Rails アプリケーションに OpenTok を統合するために使用している gem は、https ://github.com/opentok/Opentok-Ruby-SDK にあります。アプリケーションのコアは、次の例に基づいています: http://www.tokbox.com/blog/building-a-video-party-app-with-ruby-on-rails .
コードの関連部分では、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 メソッドをスタブ化するにはどうすればよいですか?