Rails - rspec的对象创建,其类定义为lib / classes

时间:2018-04-12 17:03:34

标签: ruby-on-rails ruby

我正在尝试为submit文件中的app/controllers.sample.rb方法编写Rspec测试用例。

User类在lib/classes文件夹中定义。在User session.rb文件中创建app/controllers/concerns对象,该文件在创建新会话期间自动加载。

user中的session.rb方法从其他API获取用户参数。

在这里,我发现使用Rspec创建User对象很困难,它总是在

返回错误
list = user.get_list 

我已经提供了我为测试用例编写的示例代码集。 任何人都可以帮助如何在User中从rspec实例化concerns/session.rb对象吗?

应用/控制器/关切/ session.rb

  def user
    if user
       user
    else
      begin
        rest_resource = RestClient::Resource.new(ENV['SESSION_API'], :verify_ssl => false)
        data = rest_resource.get  Authorization: request.headers['Authorization'] 
      rescue RestClient::Exception => e
        @error = JSON.parse(e.response, symbolize_names: true)
        return nil
      end

      self.user = User.new(current_user,request.headers['Authorization']  )

    end
  end

规格/控制器/ rspec_sample.rb

 describe "Submit" do
    it "Submit and expects to succeed" do      
         allow_any_instance_of(Concerns::Session).to receive(:current_user).and_return(name: "test") 

         allow_any_instance_of(Concerns::Session).to receive(:user).and_return(name: "test")
         post :submit, params
        expect(response).to have_http_status(200)

    end
  end

应用/控制器/ sample.rb

def submit
  list = user.get_list  
end

LIB /类/ user.rb

class User
  def list    
    return values    
   end  
end

0 个答案:

没有答案