测试POST Rails的JSON响应

时间:2014-10-04 07:30:29

标签: ruby-on-rails json post rspec

我正在开发一个Rails练习。我只需要创建一些用户并让他们登录。创建用户时,我需要发送一个json响应(我知道该怎么做),但我不知道如何使用RSPEC测试该响应是否正确。这是我的尝试:

describe "with correct input" do
    before { @user.save }
    specify { expect(User.count).to eq(1) }

    it "should respond json" do
      post '/signup.json', :user => {:name => 'ppppp', :login => '1234567890'}
      json = JSON.parse(response.body)
      expect(json["user_name"]).to eq('ppppp')
      expect(json["login_count"]).to eq('1234567890')
    end
end

当我尝试这个时,我得到错误:NoMethodError:undefined method`post'

谢谢!

1 个答案:

答案 0 :(得分:0)

这是控制器规格吗?如果是,则将spec文件放在spec/controllers文件夹下。

默认情况下,Rspec假定控制器规格位于此文件夹下。如果文件不在控制器文件夹中,请将:type => :controller添加到示例组。

参考Rspec documentation

希望这有帮助。