Ruby on rails RoR测试控制器

Ruby on rails RoR测试控制器,ruby-on-rails,Ruby On Rails,我使用RoR 3,我猜控制器的测试中发生了一些变化 没有 def test_should_create_post 但是 是否有任何说明,该映射如何等?因为我不明白 第二件事。如何编程(什么断言)来测试登录 所以测试“something here”风格是rails帮助我们解决问题的一种方式。它与def test_as_you_所需的基本相同,但它们帮助我们去掉了那些讨厌的“u(下划线)”,并将实际的测试措词包装在一个字符串中。这个变化回来了,呸。。。也许是2.3.x。这一事实必须得到核实,但至少

我使用RoR 3,我猜控制器的测试中发生了一些变化

没有

def test_should_create_post
但是

是否有任何说明,该映射如何等?因为我不明白

第二件事。如何编程(什么断言)来测试登录

所以
测试“something here”
风格是rails帮助我们解决问题的一种方式。它与
def test_as_you_所需的基本相同
,但它们帮助我们去掉了那些讨厌的“u(下划线)”,并将实际的测试措词包装在一个字符串中。这个变化回来了,呸。。。也许是2.3.x。这一事实必须得到核实,但至少在一年半之前

你的第二件事更难回答,伙计。你在使用什么插件,或者你是那些正在编写自己的auth系统的人之一

不管是哪种方式,请查看“著名的”auth插件是如何实现的。从Restful Auth到Desive,基本上您希望测试能够:

  • 注册用户帐户
  • 您所有的确认电子邮件都已发送等
  • 例如,大多数“作弊”或通过传递一个名为
    signed\u的助手(例如:one)
    来轻松解决问题。假设你很酷并且使用固定装置

    基本上,如果你的Auth插件/gem没有一个,那么helper方法就是这样的,比如我第一次编写测试时没有的Clearance。。。不确定现在是否有,但它揭示了它应该是什么样子。注意,我已经注释掉了Restful Auth以及他/他们是如何做到的:

      #login user
    def login_user(user = users(:one))
      #Restful Auth Example
      # @request.session[:user_id] = user ? users(user).id : nil
      # Clearance
      @controller.class_eval { attr_accessor :current_user }
      @controller.current_user = user
      return user
    end
    
    实际上我想我是从他们的登录助手那里偷来的。。。我可能就是这么做的。无论哪种方式,它都会向您展示如何伪造用户登录

    现在,当您进行测试时,只要在需要用户登录时将这个login_user方法传递给您的测试,然后开始测试该方法的其余部分,而不用担心他们实际登录。这就是插件应该做的,如果它至少不让那个家伙登录,那么在github上关注它的1000人就会尖叫


    干杯

    我编写了自己的身份验证系统,非常简单,模型中的身份验证方法、singup、登录操作和简单视图。这就是我所需要的。我需要:发送后请求登录行动一次与良好的数据和一次与坏的。并检查会话变量是否已设置。我不知道如何实现最后一件事。所以你们真正的问题是“我如何测试会话变量是否被设置”?
      #login user
    def login_user(user = users(:one))
      #Restful Auth Example
      # @request.session[:user_id] = user ? users(user).id : nil
      # Clearance
      @controller.class_eval { attr_accessor :current_user }
      @controller.current_user = user
      return user
    end