首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我很难理解如何在从api中获取消息的测试中使用webmock

我很难理解如何在从api中获取消息的测试中使用webmock
EN

Stack Overflow用户
提问于 2022-11-29 18:44:34
回答 1查看 20关注 0票数 0

我目前正试图为这个方法编写一个测试:

代码语言:javascript
复制
#fetch message from api

def message_instance
    project_id = ENV['SIGNALWIRE_PROJECT_KEY']
    project_tkn = ENV['SIGNALWIRE_TOKEN']
    host_url = ENV['SIGNALWIRE_HOST']
@client = Signalwire::REST::Client.new project_id, project_tkn, signalwire_space_url: host_url
    message = @client.messages(sid).fetch
end

并且正在使用FactoryBot模拟接收到的消息@message = build : message,status::received

但我无法理解如何测试这个方法的每一行。希望有人能打破我怎样才能正确地存根一个请求?

编辑:到目前为止,我已经尝试过这样的方法:

代码语言:javascript
复制
  describe 'message_instance' do
      it 'returns message instance' do
        
        allow(ENV).to receive(:[]).with('SIGNALWIRE_PROJECT_KEY').and_return('AC123')
        @message = build :message, status: 'received', sid: '123456789'
       
       
        @message.message_instance.should eq @client
        
      end
    end

返回此错误:

代码语言:javascript
复制
 "BUNDLER_ORIG_RUBYLIB"=>"BUNDLER_ENVIRONMENT_PRESERVER_INTENTIONALLY_NIL", "BUNDLER_ORIG_RUBYOPT"=>"BUNDLER_ENVIRONMENT_PRESERVER_INTENTIONALLY_NIL", "BUNDLE_GEMFILE"=>"/vagrant/oyetext-backend/Gemfile", "BUNDLE_BIN_PATH"=>"/usr/share/rvm/rubies/ruby-2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle", "BUNDLER_VERSION"=>"2.1.4", "RUBYOPT"=>"-r/usr/share/rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/bundler/setup", "RUBYLIB"=>"", "RAILS_ENV"=>"test", "SIGNALWIRE_PROJECT_KEY"=>"test", "SIGNALWIRE_TOKEN"=>"test", "SIGNALWIRE_NUMBER"=>"+19999999999"} received :[] with unexpected arguments
         expected: ("SIGNALWIRE_PROJECT_KEY")
              got: ("SIGNALWIRE_TOKEN")
        Please stub a default value first if message might be received with other args as well. 
EN

回答 1

Stack Overflow用户

发布于 2022-11-29 22:06:27

我并不认为顽固的ENV是一个好主意,因为您可以看到,它用于比代码逻辑更多的东西,比如bundler或ruby本身。

与其调用allow(ENV).to...,不如尝试使用以下方法:

代码语言:javascript
复制
ENV['SIGNALWIRE_PROJECT_KEY'] = 'AC123'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74618854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档