【问题标题】:How would I setup a functional test for this in Rails?我将如何在 Rails 中为此设置功能测试?
【发布时间】:2012-02-12 12:19:32
【问题描述】:

好的,所以我做了一个登录操作,但我对如何为此设置功能测试或单元测试有点困惑。会不会像从我的灯具发送用户名和密码并检查 session[:user_id] 是否为零?

提前致谢:)

    #POST /sessions
  def create
    user = User.authenticate(params[:email],params[:password])
    if user
      session[:user_id] = user.id
      redirect_to root_path, :notice => "Logged in successfully!"
    else
      flash.now.alert = "Invalid username/password"
      render "new"
    end
  end

【问题讨论】:

    标签: ruby-on-rails ruby unit-testing functional-testing


    【解决方案1】:

    从逻辑上讲,您可以进行多种测试:

    1. 发送无效电子邮件(针对您尚未创建的用户)。您可以检查 flash,您可以检查 new 是否已渲染。
    2. 发送无效密码(对于您创建的用户)。检查 flash,新的已经被渲染。
    3. 发送有效的电子邮件/密码组合(针对您已呈现的用户)。检查您是否已正确重定向,并且 user_id 是否存在于会话变量中。

    假设您使用的是标准 Rails 测试框架,这将被置于会话控制器的功能测试之下。您可以通过执行以下操作来测试重定向和呈现:

    assert_template "new"
    

    assert_redirected_to root_path
    

    这里有更多信息(尤其是关于你发完帖子后可用的哈希值):

    http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-03
      • 2021-12-16
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多