ruby-on-rails – 使用Authlogic进行集成测试?

对于我的生活我不明白为什么Authlogic没有登录我在这个集成测试.我没有任何问题w / Authlogic登录我的功能测试使用这个代码.根据authlogic rdocs( http://tinyurl.com/mb2fp2),模拟登录状态在功能&集成测试,所以我很困惑.任何帮助深表感谢!
class TipsController < ApplicationController
  before_filter :require_user,:only => [:destroy,:undelete]
  def destroy
    @tip = Tip.find(params[:id])

    if can_delete?(@tip)

      @tip.destroy

      set_flash("good","Tip deleted. <a href=\"#{undelete_tip_url(@tip.id)}\">Undo?</a>")
      respond_to do |format|
        format.html { redirect_to city_path(@tip.city)} 
      end
    else
      set_flash("bad","Seems like you can't delete this tip,sorry.")
      respond_to do |format|
        format.html { render :action => "show",:id => @tip} 
      end
    end
  end
end


class DeleteTipAndRender < ActionController::IntegrationTest
  context "log user in" do
    setup do
      @user = create_user
      @tip = create_tip
    end

    context "delete tip" do
      setup do
        activate_authlogic
        UserSession.create(@user)
        @us = UserSession.find
        post "/tips/destroy",:id => @tip.id
      end

      should_redirect_to("city_path(@tip.city)"){city_path(@tip.city)} 
    end
  end
end

解决方法

基于“用户会话控制器”创建方法中的代码,该方法采用了登录凭据的哈希,我可以在我的集成测试中使其工作:

UserSession.create(:email =>’someone@example.com’,:password =>’密码’)

但不是:

UserSession.create(@user)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...