大家好,我正在尝试让Rspec测试操作是否在我拥有的模型中调用了特定方法,该模型继承自ActiveMailer但没有运气。因此,作为一个快速的模型,我有以下情形。型号UserNotifier:

class UserNotifier < ActionMailer::Base
  def foobaz
  end
end


控制器密码控制器:

class PasswordsController < ApplicationController

def foobar
  UserNotifier.foobaz
end


和规格:

 describe "GET 'foobar'" do

   it "should call the UserNotifier foobaz method" do
     UserNotifier.should_receive(:foobaz)
     get :foobar
   end
 end


但是我总是以失败告终:

1) PasswordsController GET 'foobar' should call the UserNotifier foobaz method
 Failure/Error: UserNotifier.should_receive(:foobaz)
   (<UserNotifier (class)>).foobaz(any args)
       expected: 1 time
       received: 0 times


谁能启发我为什么RSpec没有注册UserNotifier.foobaz方法正在被调用?

最佳答案

在Ryan Bigg的评论中回答。最终是一个before_filter,导致该方法永远无法运行

09-25 22:55