rspec testing of sending email as delayed job in Rails 4, help with 
reviewing test spec and deciphering rspec error message.  I'm working 
backwards here where I have working code but the test I am writing for it 
is not passing:

I'm carrying out a unit test on my model:

class Inbound_Email < ActiveRecord::Base
belongs_to :user
after_create :send_confirmation_email

private

def :send_confirmation_email
# create delay job that sends a confirmation to the user who wrote in 
# confirmation_email is the email template to be used 
UserMailer.delay.confirmation_email(self.id)
end

end

---------------------------------------------
here is my rspec file

require 'spec_helper'

describe Inbound_Email do 
before(:each) do
Delayed::Worker.delay_jobs = false
message = FactoryGirl.create(:message)
end

it "queues confirmation mail job when a inbound email is received" do 
mock_delay = double('mock_delay').as_null_object
UserMailer.any_instance.stub(:delay).and_return(mock_delay)
mock_delay.should_receive(:send_confirmation_email)
Delayed::Job.count.should == 1
end

end
_________________________________________

here is my factory girl file for message:

FactoryGirl.define do

  factory :message do

    user

    to ["mail@#{EMAIL_URI}"]

    from '[email protected]'

    subject 'email subject'

    raw_html ''

    raw_text ''

end

-----------------------------------------------------------------------------------

I am getting the following error when running the spec:
Failure/Error: message = FactoryGirl.create(:message)
ArgumentError:
An SMTP To address is required to send a message. Set the message 
smtp_envelope_to, to, cc, or bcc address.
# ./app/models/user.rb:54:in `send_welcome_email'
# ./spec/models/message_spec.rb:6:in `block (2 levels) in <top (required)>

----------------------------------------------------------------------------------------------

I have googled the error message but there weren't any helpful info online. 
Am I testing correctly? and if so, how do I pass the test?

-- 
You received this message because you are subscribed to the Google Groups 
"rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rspec/f9a95a03-2f57-41cb-946c-ec95f6106b6a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to