我用来在 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 方法进行存根?