最近、データベースに問題が発生しています。最初は factorygirl の問題だと思っていましたが、factorygirl は (おそらく) クリアされていないデータを実際には使用していないことに気付きました。
とにかく、最初に factorygirl を使用して新しいユーザーを作成します。次に、ユーザーとしてログインし、データ フィールド「foo_name」と「bar」を持つ新しい「foo」を作成できるページに移動します。次に「」を記入します。:with => "" フィールドと click_button "保存" をクリックして、新しい "foo" オブジェクトを作成します。その後、新しいオブジェクトのインデックスを確認すると、1 のはずですが、テストを実行するたびに数字が 4 ずつ増えていきます (現在は 72 です)。
さらに、テストの開始時に古いユーザーを削除する必要があることがわかりました。そうしないと、factorygirl はユーザーが既に作成されていると文句を言います。
RSPEC がテスト データベースの削除を処理してくれるはずだとほぼ確信していましたが、間違っていますか? もしそうなら、データベースをクリアする「良い」方法について誰か良いアドバイスがありますか? 私はすでに数日間見回してきましたが、これまでのところ本当に残念です。
どうもありがとうございました。
編集(いくつかのサンプルコードがリクエストされました):
...
context "can create a new FooBar" do
before {
find_link('New Foo Bar').click
}
it 'has current_path "/foo_bar/new"' do
current_path.should == '/foo_bar/new'
end
context "when the correct information is given" do
before {
fill_in 'Name', :with => 'TestFooBar'
fill_in 'Description', :with => 'A test foo bar'
click_button 'Save'
}
it 'has current_path "/foo_bars"' do
current_path.should == '/foo_bars'
end
...
この後、foo_barsがいくつあるかを確認します