2011-01-24 7 views
2

私はMichael Hartlのチュートリアルhttp://railstutorial.org/を見てきましたが、大半はRailsを使い始めるのに大いに役立っています。この本はTDDに非常に重点を置いています.TDDを学びたかったのですばらしいですが、テストの90%が「電子メールが既に取られました」というエラーで失敗するという問題があります。私は起こっていることは、テストが実行されるとき、その本に示唆されるように電子メール "[email protected]"を持つユーザーを作成するということです。問題は、ユーザーを作成する必要がある2番目のテストが実行され、同じ「[email protected]」電子メールアドレスが使用されている場合です。私は一連の電子メールアドレスを作成するために工場の女の子を使用して見た回避策があることを知っていますが、チュートリアルの例が適切に動作するようにする必要はありません。ruby​​ on railsチュートリアルTDD「電子メールはすでに取得済み」

他に誰かがこの問題に遭遇しましたか?この特定のトピックに関する質問がないと判断して、自分のコードのバグだと思っていますが、他の誰かがこれに遭遇した可能性があります。

答えて

2

いやはやを!問題はコメント行です:

config.use_transactional_fixtures = true 

in spec_helper.rb!

初心者ミス。

0

各テスト後にデータベースをクリーンアップする方法のトピックを検索する必要があります。問題は、フィクスチャから読み込んだデフォルトのユーザーが問題になっている可能性があります。また、テストでhinを再度作成すると、問題が発生する可能性があります。 rspec、test :: unitまたはcucumberを使用すると違いが生じるので、リンクは付けません。それぞれに特権があります。

ハッピーコーディング!

0

最近私もこの問題を抱えていました。テストDBは、テストの後にクリーンアップする必要がありますが、何らかの理由でクリーンアップする必要があります。私がしたことは、すべてをリセットして、私が工場(工場ガール)を使っていたことを確認するために 'rake db:reset'を実行したことです。実際にデータベースにアクセスしていないことを確認するために、フィクスチャまたはファクトリを使用してみてください。

+0

rake db:resetは私のためにそれを解決していないし、私も工場を使用しています。 最初のテストのテスト結果: 89例、49失敗 2番目のテスト: 89例、51失敗 – Adam

0

CH 11の終わり近くで同様の現象が見られました。私のspec_helper.rbは正しいものでした。これは私のためにそれを修正:

が再開 "レールS"
再起動自動テスト
すくいデシベル:テスト:
すくいデシベルを移行:
すくいデシベルをリセット
すくいデシベル準備:移入を

HTH 、 ペリー

関連する問題