我無法通過測試。在我的應用程序中,用戶可以有多個他們請求的會議(sent_meetings)以及他們請求的會議(received_meetings)。rspec測試失敗:兩個「科目」之間的衝突
首先,我(簡化)user.rb型號:
user.rb
class User < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation
has_secure_password
has_many :sent_meetings, :foreign_key => "requestor_id", :class_name => "Meeting"
has_many :received_meetings, :foreign_key => "requestee_id", :class_name => "Meeting"
end
而且我meeting.rb型號:
meeting.rb
class Meeting < ActiveRecord::Base
attr_accessible :intro, :proposed_date, :proposed_location
belongs_to :requestor, class_name: "User"
belongs_to :requestee, class_name: "User"
end
我的測試:
meeting_spec.rb
require 'spec_helper'
describe Meeting do
let(:requestee) { FactoryGirl.create(:user) }
let(:requestor) { FactoryGirl.create(:user) }
before { @received_meeting = requestee.received_meetings.build(intro: "Lorem ipsum") }
before { @sent_meeting = requestor.sent_meetings.build(intro: "Lorem ipsum") }
subject { @sent_meeting }
it { should respond_to(:intro) }
it { should respond_to(:requestor_id) }
it { should respond_to(:requestor) }
its(:requestor) { should == requestor }
# it { should be_valid }
subject { @received_meeting }
it { should respond_to(:intro) }
it { should respond_to(:requestee_id) }
it { should respond_to(:requestee) }
its(:requestee) { should == requestee }
# it { should be_valid }
end
似乎是在我的規格文件(@sent_meeting和@received_meeting)兩個「主題」行之間的衝突,以及一個覆蓋另一個。這是我失敗的測試消息:
失敗:
1)會議請求 故障/錯誤:它(:請求者){應==請求者} 預期:# 有:無(使用==) #./spec/models/meeting_spec.rb:15:in`塊(2級)在'
在0.67458秒 36個實例成品,1次失敗
失敗的例子:
rspec的./spec/models/meeting_spec.rb:15#會議請求
我發現有趣的是,我得到這個錯誤只爲要麼請求者或請求方(顯然有衝突)。兩個主題代碼塊的順序很重要,當我切換它們時,我會得到與上面相同的錯誤,但對於'請求者'而不是'請求者'。
我怎樣才能通過測試?謝謝!
很棒,豆。。有用。謝謝!然而,現在我的驗證測試失敗了(我沒有註釋'it {should be_valid}')。發送的會議和接受的會議都需要對請求者和被請求者作出迴應嗎?我嘗試過,但他們繼續失敗。 – keypulsations 2012-07-31 18:48:02
我認爲這是另一個問題。請批准我的回答並提出另一個問題。謝謝! – Dougui 2012-07-31 19:14:46