0
我想重構一些RSpec/Rails測試,以便它們儘可能少地保留到數據庫的對象,但是在試圖弄清楚如何重新編譯時,寫測試,如下列:編寫Rails測試,不堅持如此多的數據庫對象
describe User do
context "record creation" do
before(:each) { @user = User.new(user_atts) }
it "should generate a confirmation_token" do
# Generated as the result of a callback
@user.save!
expect(@user.confirmation_token).to be_present
end
it "should set the confirmed_at attribute to nil" do
# Cleared as the result of a callback
@user.save!
expect(@user.confirmed_at).to be_nil
end
it "should call the send_confirmation_instructions method" do
@user.should_receive(:send_confirmation_instructions) {}
@user.save!
end
end
def user_atts
# return attributes hash
end
end
這是一個非常簡單的例子,但也有很多類似的例子在我的規格,並且,在大多數情況下,他們都堅持記錄到數據庫中。我很想利用RSpec的let
和subject
幫手,但我不確定那些人甚至會在這裏幫忙。
我一直在使用FactoryGirl了很多,認爲也許它build_stubbed
戰略將加速我的規格一點,但我無法找到許多情況下,這將有助於限制實際記錄創建(或者也許我不知道如何使用)。
我假設有些情況下,測試需要記錄創建,但上面的例子幾乎看起來像其中之一。我應該甚至試圖重構這個還是有更好的寫這些測試?任何幫助將不勝感激。