2014-09-09 2 views
0

그래서 'to'Rspec 메서드에 대한 정의되지 않은 메서드 오류가 있습니다. 왜 이런 일이Rspec undefined method 'to'

1) Comment after_create with users permission sends an email to users who have favorited the post 
Failure/Error: allow (FavoriteMailer) 
NoMethodError: 
    undefined method `to' for FavoriteMailer:Class 
# ./spec/models/comment_spec.rb:18:in `block (4 levels) in <top (required)>' 

어떤 아이디어 : 나는 다음과 같은 오류가 사양을 실행하면 다음 코드

it "sends an email to users who have favorited the post" do 
    @user.favorites.where(post: @post).create 

    allow (FavoriteMailer) 
     .to receive(:new_comment) 
     .with(@user, @post, @comment) 
     .and_return(double(deliver: true)) 

와 사양이?

답변

2

는 처음 브래킷하기 전에 공백을 제거, 그래서 당신은 쓸 수 :

allow(FavoriteMailer) 

을하지만, 더 나은은 다음과 같습니다 allow((FavoriteMailer).to ..)

:로 해석됩니다 allow (FavoriteMailer).to .. : 귀하의 경우

allow(FavoriteMailer)