2

いくつかのモデルが必要な Java ライブラリと対話する必要がある Rails アプリケーションを構築しています。これを行うには、JRuby や RBJ ではなく、MRI で Rails を使用したいと考えています。Java コードには、Rails アプリによって管理されるデータベース テーブルへの読み取りアクセスのみが必要です。

これを行う 1 つの方法は、Rails アプリのデータベース テーブルを読み取るサーブレットをセットアップすることです。

問題は、テスト中に Rails トランザクション フィクスチャを使用すると、テストのすべてのデータベース アクティビティがサーブレットなどの外部プロセスから見えなくなることです。

展開に関しては、これは問題ではありませんが、これらの条件下で自動テストを行う方法は明確ではありません。

RSpec を使用して、Rails によって管理されるテーブルにアクセスできる外部プロセスに依存する Rails モデルをテストするにはどうすればよいですか?

4

1 に答える 1

2

トランザクション フィクスチャをオフにすると、データベースの書き込みが外部プロセスから見えるようになります。これを行いたいテストクラスで、次のように入力します。

self.use_transactional_fixtures = false

またはtest/test_helper.rb、すべてに適用する場合は入れます。すべてが実際にデータベースにヒットするため、テストの実行が遅くなる可能性があることに注意してください。

于 2009-01-13T06:53:55.477 に答える