gpt4 book ai didi

unit-testing - 测试 Rails 3.1 时验证模拟用户

转载 作者:行者123 更新时间:2023-12-02 05:09:56 25 4
gpt4 key购买 nike

我正在尝试测试我的 Rails 3.1 应用程序(我正在学习测试)并且我坚持我如何验证用户,因为通常它会设置一个 session 但测试不使用浏览器所以 session 是一个未定义的方法。我正在使用新的 Rails 3.1 has_secure 密码。

如何正确设置和测试身份验证,以及测试应用中需要用户进行身份验证的部分?

我的设置如下:

rspec 2 capybara guard 工厂女孩

谢谢!

最佳答案

当您进行 Controller 测试时, session 哈希是最后一个参数。假设您在 session Controller 测试中有类似这样的东西:

post :create, :user => { :email => "blah@blah.com" }, :color => "red"

这通过 2 个参数发送到 Controller :params[:user] 和 params[:color]。

session 变量呢? session 变量作为最后一个参数发送。如果我们想设置一个 last_logged_in session 变量,我们会将上面的更改为:

post :create, {:user => { :email => "blah@blah.com" }, :color => "red"}, {:last_logged_in => Time.now}

请注意我在用户和颜色参数周围放置的额外设置大括号。现在您可以在您的 Controller 中访问 session [:last_logged_in]。

我强烈建议阅读 ror 指南。这是关于 Controller 测试的一个: http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers

关于unit-testing - 测试 Rails 3.1 时验证模拟用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com