我使用RoR 3,并且我想控制器的测试中发生了一些变化。RoR测试控制器
没有
def test_should_create_post
但
test "should create user" do
...
end
有什么能解密如何是映射等?因为我没有明白。
而第二件事。如何编程(什么断言)用来测试登录?
我使用RoR 3,并且我想控制器的测试中发生了一些变化。RoR测试控制器
没有
def test_should_create_post
但
test "should create user" do
...
end
有什么能解密如何是映射等?因为我没有明白。
而第二件事。如何编程(什么断言)用来测试登录?
所以test "something here"
风格是rails的方式来帮助我们。它基本上与def test_as_you_want
相同,但他们通过删除那些令人讨厌的'_(下划线)'并用字符串包装实际测试措辞来帮助我们。这个变化回来了,呃...也许2.3.x.这个事实必须被检查,但至少在一年半之前。
你的第二件事是更难回答的人。你使用的是什么插件,或者你是那些编写自己的认证系统的人之一?
无论哪种方式,请查看'着名'auth插件如何做。从宁静的验证来制定,基本上你想测试,你可以:
大部分的这些“作弊”或者通过传递一个名为signed_in users(:one)
的帮手来轻松解决问题。假设你很酷并使用灯具。
基本上这里是一个辅助方法,如果你的Auth插件/宝石没有一个,就像我第一次写测试时没有它的Clearance一样......不确定它现在是否有它但它揭示了它的外观。请注意,我已经注释掉宁静的验证和他/他们做到了:
#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方法传递给您的测试即可,当您需要用户登录并开始测试该方法的其余部分时,无需担心它们实际登录。这就是插件应该执行的操作和1000人以下它在github上,如果没有至少登录那家伙会尖叫。
欢呼
我写我自己的身份验证系统,这是非常简单的,在模型中身份验证方法,singup,登录行动和简单的意见。它的全部我需要。 我需要: 发送请求登录操作一次数据良好,一次使用不好的数据。并检查会话变量是否设置。我不知道如何实现最后的事情。 – matiit 2010-08-18 06:43:52
所以你真正的问题是“我如何测试我的会话变量正在设置”? – pjammer 2010-08-18 13:37:43
是的,这将是一个很好的问题 – matiit 2010-08-18 21:04:14