2013-05-15 5 views
0
나는 최근에 내 RSpec에 출력 사이에 다음과 같은 오류 메시지가 표시하기 시작했습니다

:이 테스트가 실패하지 않습니다메일러는 던지는 정의되지 않은 [] RSpec에 레일 전무에 대한

undefined method [] for nil:NilClass 

참고, 그냥이 오류 메시지를 넣습니다 버퍼 나는 그것이 우편물 때문에 일어났다는 것을 추적 할 수 있었다. 그러나, 나는 그것이 생산 될지도 모르는 곳이나 백 트레이스를 볼 수있는 어떤 방법을 찾을 수없는 것처럼 보입니다.

변명 큰 붙여 넣기,하지만 난 모든 관련 코드가 포함되어 있는지 확인하고 싶었 : 어떤 도움

## app/models/invite.rb 
class Invite < ActiveRecord::Base 
    include Token 

    belongs_to :account 
    after_create :send_email 
    def send_email 
    InviteMailer.invite(self).deliver 
    end 
end 

## app/mailers/invite_mailer.rb 
class InviteMailer < ActionMailer::Base 
    def invite(invite) 
    @invite = invite 
    @account = invite.account 

    mail to: invite.email, subject: "You're invited to help manage #{@account.name}" 
    end 
end 

## spec/models/invite_spec.rb 
require 'spec_helper' 
describe Invite do 
    let(:account){create(:account)} 

    it 'mails the user' do 
    account.invites.create(email: '[email protected]') 
    end 
end 

## config/environments/test.rb 
config.action_mailer.default_url_options = { :host => 'localhost:3000' } 
config.action_mailer.delivery_method = :test 

## Test Results 
› be rspec spec/models/invite_spec.rb 
undefined method `[]' for nil:NilClass 
undefined method `[]' for nil:NilClass 
. 

Finished in 0.79803 seconds 
1 example, 0 failures 

Randomized with seed 46468 

감사합니다,이 사람이 날 미치게되었습니다.

답변

0

제안 그것을 생성 즉시보다는 느리게 당신의 invite_spec.rb

let!(:account){create(:account)} 

하자 뱅의 let을 변경하는 것입니다. 언제든지 nil:NillClass error을받을 수 있습니다. 간과하기 쉽습니다.

+0

나는 불행히도 콘솔에서도이를 확인했으며, 수동으로 초대장을 만들 때 오류 메시지가 표시 될 수도 있다고 생각했습니다. – Matthew

+0

예, 코드가 정상적으로 보입니다. 이상합니다. 최근에 rspec-rails를 업데이트 했습니까? 어쩌면 그들이 말하는 것을 볼 수 있습니다. 너는 무언가에 비틀 거렸을지도 모른다. – fontno

관련 문제