我刚开始使用 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
,并希望它出现在 line 处# 2
,但我猜数据库会在两者之间刷新。
这是测试这种事件流的错误方法吗?我应该做什么?任何指针将不胜感激。