ruby-on-rails - 具有多按钮形式的 Rspec

标签 ruby-on-rails ruby-on-rails-3 testing rspec

我正在用 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/

相关文章:

sql - 低内存销毁操作

ruby-on-rails - bundle 更新后出现 RoR 4 错误

ruby - 多对多 : how to prevent duplicates? 上的 Rails 嵌套表单

mysql - 在设计数据库时,通常是删除实际记录,还是切换 "the undisplay flag"?

ruby-on-rails - Rails + webpacker + vue : "You are using the runtime-only build of Vue where the template compiler is not available."

mysql - 如何验证 mysql 数据库 URI

ruby-on-rails-3 - Heroku dyno/worker 在开始时崩溃

python - 我如何在使用 selenium python 的网站中抓取::之前的元素

testing - 如果 liquibase 格式的 sql 已经存在,我如何让 liquibase 跳过表创建?

unit-testing - MSTest 事件监听器