当我在rails中运行测试时,如何访问辅助方法?

时间:2011-12-09 04:34:56

标签: ruby-on-rails

我正在为我的电子邮件服务编写测试,在我的电子邮件模板文件中,我调用了一个名为do_it的辅助方法,该方法在application_helper.rb

中定义

然而,当我运行我的测试时他们失败了因为没有导入帮助器方法,我得到以下异常:

NoMethodError: undefined method `do_it' 

关于如何将辅助方法导入测试的任何想法/建议?

我正在使用:

require 'test_helper'

class NotifierTest < ActionMailer::TestCase

1 个答案:

答案 0 :(得分:1)

Helper只是一个包含实例级方法的模块。 RSpec通过在帮助器的helper.x块内使用describe,为您提供了一种在默认情况下在自动生成的Helper规范中访问此方法的方法。如果您没有使用RSpec,那么您的测试框架可能会提供其他方法。或者,您可以将模块混合到一个类中并测试该类的实例。

测试设置中的某个地方:

class ApplicationHelperTest; include ApplicationHelper; end
@helper = ApplicationHelperTest.new

在你的测试中:

assert @helper.do_it

为了更好地解决您的确切问题,您需要做的是在要调用该方法的类中包含帮助程序。例如,假设该类是Mailer:

Mailer.send(:include, ApplicationHelper)
相关问题