我使用RoR 3,我猜控制器的测试中发生了一些变化。
没有
def test_should_create_post
但
test "should create user" do
...
end
是否有任何解密如何映射等?因为我不明白。
第二件事。如何编程(断言)用于测试登录?
答案 0 :(得分:1)
所以test "something here"
风格是帮助我们的轨道方式。它基本上与def test_as_you_want
相同,但它们通过消除那些令人讨厌的'_(下划线)'并将实际的测试措辞包装成一个字符串来帮助我们。这个改变回来了,嗯......可能是2.3.x.这个事实必须要检查,但至少一年半前。
你的第二件事是更难回答男人。你在使用什么插件,或者你是那些正在编写自己的auth系统的人之一?
无论哪种方式,请查看“着名的”auth插件是如何做到的。从Restful Auth到Devise,基本上你想要测试你可以:
大多数这些'作弊'或通过传递一个名为signed_in users(:one)
的助手来轻松解决问题。假设你很酷并使用固定装置。
基本上这是一个帮助方法看起来像你的Auth插件/ gem没有一个,就像我第一次编写测试时没有它的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个人会尖叫,如果它至少没有记录那个人。
欢呼声