0

我的会话控制器

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

我在 session_controller_test.rb 中写了一个测试失败动作的测试

 it "failure should redirect to signin_path" do
     get :failure
     assert_redirected_to :action => 'new'   
     assert_response :redirect 
 end

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

在此处输入图像描述

4

1 回答 1

0

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

assert_redirected_to :action => "new", :controller => "sessions"
于 2013-03-19T08:37:42.370 回答