【问题标题】:Rails how to mock Http Post RequestRails 如何模拟 Http Post 请求
【发布时间】:2013-05-31 07:35:05
【问题描述】:

在我的控制器中,我用参数发出了这个帖子请求,它运行良好

parameters = {'email' => "email", 'password' => "password"}      
response = Net::HTTP.post_form(URI.parse('http://example.com/unsubscriptions'), {'q'=>parameters})
      if response.is_a?(Net::HTTPSuccess)
        @msg = "You have successfully unsubscribed."
      else
        @msg = "Resource not found."
      end

在规格控制器中这是代码

   it "should return success message on a successfull Post request to api" do
              parameters = { "email" => 'email', "password" => "password" }
              Net::HTTP.should_receive(:post_form).with(
                  URI.parse("http://example.com/unsubscriptions"), "q" => parameters
              ).and_return(Net::HTTPSuccess)
              post :unsub_uk, parameters
              #assigns(:msg).should eq("You have successfully unsubscribed.")
              response.should be_success
    end

我无法模拟这个Net::HTTP.post_form 请求。任何想法或任何其他方式来完成这项任务? 提前致谢。

【问题讨论】:

    标签: ruby-on-rails-3.2 mocking rspec2 rspec-rails


    【解决方案1】:

    只需使用 gem webmock

    相信解决了问题,因为返回应该是Net::HTTPSuccess。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 2018-05-29
      • 2021-11-09
      相关资源
      最近更新 更多