Ouverture de session

Commentaires récents

Syndication
Flux XML

réception email

réception email
Posté par altair8080 le Dimanche, 2 Décembre, 2007 - 8:17pm. Recettes Rails - Pearson France

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



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet suivant | envoyer par email ]

Nouveaux liens

Sondage
Lorsque je développe avec Ruby on Rails c'est principalement sous:
Linux
36%
Mac OS X
30%
Windows
32%
(Free|Open|Net) BSD
1%
Autre...
1%
Nombre de votes: 368

Qui est en ligne
Il y a actuellement 1 utilisateur et 77 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Hébergement et ressources techniques gracieusement fournis par la SSLL Nuxos Group ]