Ruby on rails Rspec ArgumentError,未定义对象

Ruby on rails Rspec ArgumentError,未定义对象,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,为什么我会得到下面的错误? 在控制台中运行rspec测试时,我得到一个错误,即“post”未知。但失败的代码行的结构如下: post :create, valid_params 因此: it "assigns the new post to @post" do post :create, post: {title: RandomData.random_sentence, body: RandomData.random_paragraph} expect(assigns(:post)).

为什么我会得到下面的错误? 在控制台中运行rspec测试时,我得到一个错误,即“post”未知。但失败的代码行的结构如下:

post :create, valid_params
因此:

it "assigns the new post to @post" do
  post :create, post: {title: RandomData.random_sentence, body: RandomData.random_paragraph}
  expect(assigns(:post)).to eq Post.last
end
这里是错误

  1) PostsController POST create assigns the new post to @post
 Failure/Error: post :create, post: {title: RandomData.random_sentence, body: RandomData.random_paragraph}

 ArgumentError:
   unknown keyword: post

如果您使用的是Rails 5,那么您需要将
post
对象包装在
params
关键字参数中,请尝试:

post :create, params: { post: { title: RandomData.random_sentence, body: RandomData.random_paragraph } }