我有以下测试通过:
test "should create order" do
assert_difference('Order.count') do
post :create, { :message_text => @order.attributes }, { :var_name => 1 }
end
不是将 , { :var_name => 1 }
添加到每个 HTTP 调用,而是如何将 session 添加到设置方法?
谢谢!
最佳答案
在 Controller 测试中,您可以像访问 flash
一样访问 session
。
这是我用来设置程序 ID 的助手
def set_current_program(program=programs(:direct_debit))
@current_program = program
session[:program_id] = @current_program && @current_program.id
end
或者在设置中,你可以做
def setup
session[:var_name] = 1
end
然后像往常一样做你的测试
test "should create order" do
assert_difference('Order.count') do
post :create, :message_text => @order.attributes
end
end
如果操作应该改变它,您甚至可以断言 session 的值
assert_equal 24, session[:something_changed]
关于ruby-on-rails - 如何在 Rails 3 的测试设置中设置 session 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362551/