关于编写控制器动作测试的问题

时间:2013-03-19 07:05:45

标签: ruby-on-rails testing

我的会话控制器

def create
    auth = request.env["omniauth.auth"]
    person=Person.find_by_provider_and_uid(auth.provider,auth.uid) || Person.create_with_omniauth(auth)
    session[:user_id] = person.id
    redirect_to root_path
  end

  def failure
    redirect_to signin_path , alert: "Authentication failed, please try again." 
  end

我在sessions_controller_test.rb

中编写了一个测试失败操作的测试
 it "failure should redirect to signin_path" do
     get :failure
     assert_redirected_to :action => 'new'   
     assert_response :redirect 
 end

但是simplecov代码覆盖工具不接受此测试成功。 Simplecov将此失败操作显示为缺少测试。 如何为失败操作编写控制器测试。没有人对此提出任何想法吗? 下图是覆盖率报告的截图。

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试在 assert_redirect_to 语句中指定控制器名称(会话,希望如下)。

assert_redirected_to :action => "new", :controller => "sessions"