Jak*_*zok 20 controller rspec ruby-on-rails
我正在为我的控制器编写一个rspec测试,但我找不到解决问题的方法.对于其中一个边缘案例测试,我需要验证一个实例变量的值.如何在不必定义访问者的情况下访问它?通常默认情况下:
controller.variable.should == '3.15'
Run Code Online (Sandbox Code Playgroud)
不起作用.
定义
attr_reader:变量
只是让测试通过将是愚蠢的,我敢肯定有一个更智能的方式.
Ben*_*hes 44
controller.instance_variable_get(:var)
Run Code Online (Sandbox Code Playgroud)
如果您发现自己这样做,您可能需要重新考虑信息隐藏的方法,以便您测试基本行为而不是偶然的实现细节.您的测试应该确保"事物"能够正常运行而不必过于严格地绑定到特定的实现.
编辑:不是assigns(:var)轨道测试与控制器做同样的事情魔术?
| 归档时间: |
|
| 查看次数: |
17494 次 |
| 最近记录: |