Rspec 具有多按钮形式

发布于 2024-12-02 04:43:38 字数 262 浏览 1 评论 0原文

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

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

在控制器中,

post.publish unless !params[:publish]

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

I am building a simple blog in rails and have a form with multiple buttons. One button allows someone to save a draft, and another allows someone to publish a post.

One button has a name for saving the draft, and another has a name to publish the post. If the publish param is present, it will execute the publish function in the post model.

In the controller I have

post.publish unless !params[:publish]

How do I use rspec to test that if the publish param is present that it will call the publish action on the model?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弥枳 2024-12-09 04:43:38

嗯,这取决于。如果您使用水豚进行集成测试,您只需说出应单击哪个按钮即可。但我想,你有一个控制器。因此,

post :create, :post => {...}

您不需要这样做

post :create, :post => {...}, :publish => "Publish"

实际上,按钮的值(标签)将作为 params[:publish] 的值提交,因此您可能需要传递该按钮的真实标签如:发布

Well, it depends. If you do integration testing using capybara, you just say which button shall be clicked. But I guess, you have a controller. So instead of

post :create, :post => {...}

you need to do

post :create, :post => {...}, :publish => "Publish"

In reality, the value (label) of the button will be submitted as the value of params[:publish], so you might want to pass the real label of that button as :publish.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文