Ruby on rails 具有多按钮形式的Rspec

Ruby on rails 具有多按钮形式的Rspec,ruby-on-rails,ruby-on-rails-3,testing,rspec,Ruby On Rails,Ruby On Rails 3,Testing,Rspec,我正在rails中构建一个简单的博客,并且有一个带有多个按钮的表单。一个按钮允许某人保存草稿,另一个按钮允许某人发布帖子 一个按钮的名称用于保存草稿,另一个按钮的名称用于发布文章。如果publish参数存在,它将在post模型中执行publish函数 在控制器中,我有 post.publish unless !params[:publish] 如何使用rspec测试发布参数是否存在,它是否会调用模型上的发布操作?好吧,这取决于。如果您使用capybara进行集成测试,您只需说出应该单击哪个按钮

我正在rails中构建一个简单的博客,并且有一个带有多个按钮的表单。一个按钮允许某人保存草稿,另一个按钮允许某人发布帖子

一个按钮的名称用于保存草稿,另一个按钮的名称用于发布文章。如果publish参数存在,它将在post模型中执行publish函数

在控制器中,我有

post.publish unless !params[:publish]

如何使用rspec测试发布参数是否存在,它是否会调用模型上的发布操作?

好吧,这取决于。如果您使用capybara进行集成测试,您只需说出应该单击哪个按钮。但我想,你有一个控制器。所以不是

post :create, :post => {...}
你需要做什么

post :create, :post => {...}, :publish => "Publish"
实际上,按钮的值(标签)将作为
参数[:publish]
的值提交,因此您可能希望将该按钮的实际标签作为
:publish
传递