我正在为我的电子邮件服务编写测试,在我的电子邮件模板文件中,我调用了一个名为do_it
的辅助方法,该方法在application_helper.rb
然而,当我运行我的测试时他们失败了因为没有导入帮助器方法,我得到以下异常:
NoMethodError: undefined method `do_it'
关于如何将辅助方法导入测试的任何想法/建议?
我正在使用:
require 'test_helper'
class NotifierTest < ActionMailer::TestCase
答案 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)