mic*_*ski 2 testing ruby-on-rails
我开始使用Rails,目前我仍然坚持对控制器进行集成测试.
我正在尝试验证如果某个值是由表单中的用户提供的,Active Record会生成错误并将这些错误传递给视图.
我的问题是我不知道如何在集成测试中访问控制器分配的变量(例如 - @user).正如我在http://guides.rubyonrails.org/testing.html#what-to-include-in-your-functional-tests中读到的那样,我可以访问变量,例如@controller,@ request,@ response,但我也期待我可以轻松访问控制器分配的变量.
不幸的是,例如:*@user*@ controller.user
不真正的工作: - /
tje*_*den 11
Rails版本<5.0
您可以使用assigns带有变量名称符号作为参数的方法来访问这些变量.例如:
assigns(:user)
Run Code Online (Sandbox Code Playgroud)
给你@user控制器的价值.
Rails版本> 5.0
在rails 5.0中assigns并且assert_template已经被_depracted,所以为了像以前一样使用它你需要添加:
gem 'rails-controller-testing'
Run Code Online (Sandbox Code Playgroud)
到你的Gemfile.
最初讨论为什么使用assigns是一个坏主意.
| 归档时间: |
|
| 查看次数: |
2624 次 |
| 最近记录: |