我剛剛開始使用RSpec,並試圖做一些相當微不足道的事情,但我無法找到任何好的文檔來做這件事。我想測試一系列事件,說兩個用戶之間的友誼。使用RSpec測試事件序列
我的規格是:
describe User do
describe "friendships" do
describe ".friends?" do
before do
@user1 = FactoryGirl.build(:user)
@user2 = FactoryGirl.build(:user)
end
it "should be false for non friends" do
@user1.friends?(@user2).should be false
@user2.friends?(@user1).should be false
end
it "should be false for requested friendship" do
Friendship.create(:user_id => @user1.id, :friend_id => @user2.id) # 1
@user1.friends?(@user2).should be false
@user2.friends?(@user1).should be false
end
it "should be true for accepted friendship" do
Friendship.for_users(@user1, @user2).update_attribute(:approved, true) # 2
@user1.friends?(@user2).should be true
@user2.friends?(@user1).should be true
end
end
end
end
我創建在行友誼標# 1
,並期望它出現在行# 2
,但我猜測數據庫中獲取兩者之間沖洗英寸
這是測試這種事件流的錯誤方式嗎?我該怎麼做?任何指針將不勝感激。
在這種情況下,第一個和第二個之間的變化會持續嗎? – zsquare
不,它只是爲每個示例執行'before'塊。 –
但正如我在我的問題中提到的,友誼對象的狀態變化,以便從請求接受。在這種情況下,上下文有什麼幫助? – zsquare