【发布时间】:2012-05-27 13:46:32
【问题描述】:
我刚开始使用 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 行,但我猜数据库会在两者之间刷新。
这是测试此类事件流的错误方法吗?我应该做什么?任何指针将不胜感激。
【问题讨论】:
标签: ruby-on-rails rspec rspec-rails