快速测试:如何在不加载Rails的情况下测试Mailer

时间:2013-01-28 04:19:50

标签: ruby-on-rails rspec actionmailer

我有一些工作要重构邮件类。我不想花费我所有的时间来加载rails并等待测试是否正在通过。我想不包括spec_helper并加快我的测试速度。

我如何只包含ActionMailer?

我试过了:

require 'action_mailer'

但我最终还是犯了这个错误:

uninitialized constant ActionMailer (NameError)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我正在使用MiniTest,以下对我来说很好。您可以从中推断,或在您的问题中提供更多信息。

require 'minitest/autorun'
require 'mocha'
require "minitest-matchers"
require 'action_mailer'
require "email_spec"

require File.expand_path('../../../../app/mailers/my_mailer', __FILE__)

class MyMailerTest < MiniTest::Unit::TestCase
  include EmailSpec::Helpers
  include EmailSpec::Matchers

  def test_it_is_sent_from_me
    email = MyMailer.refund_processed(42)
    email.must be_delivered_from("me@example.com")
  end
end