在RSpec中设置形式参数

时间:2015-04-24 14:57:42

标签: ruby-on-rails ruby rspec

我想测试一个创建操作,其中用户通过远程API进行身份验证。因此,我没有用户模型。我在rspec中有这个:

describe "POST create" do 
  before { post :create, :user => {username: "john", password: "password"} }
  it { expect(response).to be_success }
end

这不起作用。我看了这个rspec文档但找不到任何东西。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我认为这是一个控制器规范,如果你喜欢它,它应该工作:

RSpec.describe UserControler, type: :controller do
  describe 'POST #create' do
    it 'creates a new user' do
      expect { 
        post :create, user: { username: 'john', password: 'password' }
      }.to change(User, :count).by(1)          
    end      
  end
end

要检查请求是否成功,您可以执行以下操作:

it 'creates a new user' do  
  post :create, user: { username: 'john', password: 'password' }

  expect(response).to be_success
end

希望这会有所帮助:)

答案 1 :(得分:0)

帖子行必须在其中

describe "POST create" do 
  before { }
  it "returns 200 OK" do
    post :create, :user => {username: "john", password: "password"} 
    expect(response).to be_success
  end 
end