Bonjour, j'essaye de réaliser l'exemple de courrier entrant de la recette 68. mais j'ai le problème suivante en exécutant
ruby receiver_test.rb
Loaded suite receiver_test
Started
E.E
Finished in 0.05 seconds.
1) Error:
test_email_containing_opportunity_rates_higher(ReceiverTest):
NameError: undefined local variable or method `receiver' for #
c:/instantrails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/test_process.rb:452:in `method_missing'
receiver_test.rb:34:in `test_email_containing_opportunity_rates_higher'
2) Error:
test_incoming_email_gets_added_to_database(ReceiverTest):
NameError: undefined local variable or method `receiver' for #
c:/instantrails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/test_process.rb:452:in `method_missing'
receiver_test.rb:27:in `test_incoming_email_gets_added_to_database'
3 tests, 1 assertions, 0 failures, 2 errors
Voici ce que j'ai dans
receiver_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class ReceiverTest < Test::Unit::TestCase
FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures'
CHARSET = "utf-8"
include ActionMailer::Quoting
def setup
ActionMailer::Base.delivery_method = :test
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.deliveries = []
@expected = TMail::Mail.new
@expected.set_content_type "text", "plain", { "charset" => CHARSET }
@expected.mime_version = '1.0'
end
def test_fixtures_are_working
email_text = read_fixture("message").join
assert_match(/SPECIAL/i, email_text)
end
def test_incoming_email_gets_added_to_database
count_before = Mail.count
email_text = read_fixture("message").join
receiver.receive(email_text)
assert_equal(count_before + 1, Mail.count)
assert_equal("SPECIAL", Mail.find(:all).last.subject)
end
def test_email_containing_opportunity_rates_higher
email_text = read_fixture("message").join
receiver.receive(email_text)
assert(Mail.find_by_subject("FLASH AFDCC SPECIAL RENTREE !").rating > 0)
end
private
def read_fixture(action)
IO.readlines("#{FIXTURES_PATH}/receiver/#{action}")
end
def encode(subject)
quoted_printable(subject, CHARSET)
end
end
dans receiver.rb
class Receiver < ActionMailer::Base
def receive(email)
rating = 0
if(email.subject + email.body =~ /SPECIAL/i)
rating +=1
end
Mail.create(:subject => email.subject, :body => email.body, :sender => email.from, rating => rating)
end
end
Merci de votre aide
|
il y a 18 heures 56 min
il y a 2 jours 11 heures
il y a 5 jours 13 heures
il y a 5 jours 13 heures
il y a 5 jours 18 heures
il y a 5 jours 19 heures
il y a 6 jours 14 heures
il y a 1 semaine 14 heures
il y a 1 semaine 18 heures
il y a 1 semaine 5 jours