3

RailsアプリケーションでのRSpecまたはCucumberテストの一部として、モデルを作成してテストデータベースに保存した場合、レコードはどのくらいの期間そこに残りますか?

レコードはすべてのテストサイクルの最後(または最初?)にクリアされると確信しています。これは、テストスイートの連続実行に干渉しないように見えるためですが、レコードは異なるキュウリの機能とシナリオの間で保持されますか?または異なるRSpecテスト間?

4

1 に答える 1

2

トランザクションを使用している場合、変更は各例の後にロールバックされます。

トランザクションを使用していない場合、他の手法を使用してトランザクションをクリアしない限り、変更は保持されます。これは、リクエスト仕様の一般的なケースです。したがって、テストデータベースをクリアするには、database_cleanerや手動メソッドなどが必要です。

RSpecのデフォルトのspec_helperファイルには次の行が含まれています。

  config.use_transactional_fixtures = true

これは、トランザクションが使用されることを意味します。

于 2012-08-24T21:56:18.677 に答える