如何测试自定义控制器操作

时间:2016-10-15 18:23:15

标签: ruby-on-rails testing

在我的应用程序主页中,用户可以使用表单从列表中进行选择。
表单收集选项并将其发送到控制器自定义操作,其唯一目标是更新用户的属性choice

<% form_tag({controller: "weekly_selections", action: "update_choice"}) do %>
    <div><%= hidden_field_tag :user_choice, book.title %></div>
    <%= submit_tag("choose", class: "btn btn-primary btn-sm") %>
<% end %>

我创建了一个WeeklySelection控制器和一个自定义update_choice操作:

class WeeklySelectionsController < ApplicationController

  def update_choice
    if current_user.choice_count < 10
      user_choice = params[:user_choice]
      current_user.update_attribute(:choice, user_choice)
      current_user.increment!(:choice_count)
      flash[:success] = 'Your choice has been recorded'
      redirect_to root_url
    else
      flash[:warning] = "Attention! You already made 10 choices"
      redirect_to root_url
    end
  end

end

如何测试此操作的正确行为,或者该操作是否实际有效?

0 个答案:

没有答案