【问题标题】:Rspec Ruby on Rails controller questionRspec Ruby on Rails 控制器问题
【发布时间】:2011-08-24 13:48:54
【问题描述】:

我目前正在使用 ruby​​ 1.9.2 和 rails 3,并且正在进行 rspec 测试。基本上,我有一个由应用程序控制器中的前置过滤器调用的函数,因此每次在我的站点上的任何位置执行控制器操作时,它显然都会运行。出于测试目的,我正在为不同的控制器编写测试,但我的操作并没有触发我之前的过滤器函数调用。有没有办法专门从 rspec 测试中的特定控制器调用函数?我不能在网上发布代码,所以没有用要求它:P.
谢谢

【问题讨论】:

  • 不能发布代码也没关系。只需编写一个演示相同问题的不同代码的快速测试用例即可。

标签: ruby-on-rails ruby ruby-on-rails-3 rspec rspec-rails


【解决方案1】:

在控制器规范中的 itbefore(:each) 块内:

controller.send( :your_method_name )

你的函数将会被调用。

【讨论】:

  • 所以如果我在“reports_controller_spec.rb”中编写测试并且我想调用存在于“application_controller.rb”中的函数,我会输入“application_controller.send(:method_name)”在测试中?
  • controller.send(:method_name),您的控制器可在名为 controller 的方法中使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多