我正在用 Rails 构建一个简单的博客,并且有一个包含多个按钮的表单。一个按钮允许某人保存草稿,另一个按钮允许某人发布帖子。
一个按钮有保存草稿的名称,另一个按钮有发布帖子的名称。如果发布参数存在,它将在发布模型中执行发布功能。
在我的 Controller 中
post.publish unless !params[:publish]
我如何使用 rspec 来测试如果发布参数存在,它将调用模型上的发布操作?
最佳答案
好吧,这取决于。如果您使用 capybara 进行集成测试,您只需说明应单击哪个按钮。但我想,你有一个 Controller 。所以不是
post :create, :post => {...}
你需要做的
post :create, :post => {...}, :publish => "Publish"
实际上,按钮的值(标签)将作为 params[:publish]
的值提交,因此您可能希望将该按钮的真实标签作为 传递:发布
。
关于ruby-on-rails - 具有多按钮形式的 Rspec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248810/