2014-02-14 81 views
0
class ReportMailer < ActionMailer::Base 
    def venues 
    @venues ||= Venue.find(VENUE_MAP.values) 
    end 
end 

如何測試場地,如果:測試實例方法 - Rails的2.3

ReportMailer.new => nil 

怎麼叫這種行爲? ReportMailer是一個抽象類嗎?

+0

你怎麼'ReportMailer.new#=> nil'?對我來說這似乎很奇怪 – mdesantis

+0

對我來說也很奇怪。我創建了一個新的Rails 2.3。應用程序隔離原因,但我有相同的。 – juanpastas

回答

0

我提取方法,模塊,然後,包括和擴展它:

class ReportMailer 
    include ReportMailer::PrivateMethods 
    extend ReportMailer::PrivateMethods 
... 

app/models/report_mailer/private_methods.rb

module ReportMailer::PrivateMethods 
    ... 
0

所有你在ReportMailer定義的方法可以稱爲類方法

ReportMailer.venues 

爲了提供電子郵件

ReportMailer.venues.deliver 

Read

+0

我在Rails 2.3中,我嘗試了'ReportMailer.venues',但它拋出錯誤。 – juanpastas

+0

嘗試'ReportMailer.deliver_venues' – usha