У меня есть стандартное приложение Rails 3.2 с некоторым странным поведением.
Я могу запустить rspec spec/
без запуска Spork, и все тесты пройдут без проблем.
Тогда я запускаю spork и снова запускаю спецификации. На этот раз каждый тест, касающийся одного из моих почтовых программ, не будет выполнен с такой же ошибкой:
Failures:
1) InvitationsController GET accept with non-matching token should redirect to the root path
Failure/Error: let!(:invitation) { Factory :invitation }
NoMethodError:
undefined method `invite' for InvitationMailer:Class
# ./app/models/invitation.rb:29:in `send_email'
# ./spec/controllers/invitations_controller_spec.rb:5:in `block (3 levels) in <top (required)>'
Тогда, чтобы сделать все это немного страннее, я могу запускать отдельные каталоги или спецификации, с или без запуска spork, и все проходит без проблем. например, rspec spec/mailers
или rspec spec/models
.
Вот метод, который мне говорят, не определен:
class InvitationMailer < ActionMailer::Base
default from: APP_CONFIG[:default_from]
def invite(invitation)
@invitation = invitation
mail(to: @invitation.recipient_email, subject: "the subject")
end
end
Есть идеи, что может произойти?