問題タブ [database-cleaner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
619 参照

ruby-on-rails - rspec テストに合格する binding.pry の変更を挿入する

tl;dr: 配列に正しいアイテムが追加されたことをテストしようとしていました。テストを実行すると、無差別に配列に追加されていることがわかりました。ただし、LessonPackage.available の最初の行に binding.pry を配置すると、テストは成功しますが、他の 2 つのテストは失敗します。

ここにいくつかのコードがあります。

元のテストでは、正しい数の項目が配列に追加されることをテストしました。これは :current スコープをテストします。テストは次のとおりです。

@old_package の「current」属性を false にする必要があることに注意してください。テスト中のコードは次のとおりです。

テストは失敗します!しかし、このコードが機能することはわかっています。これは、開発モードで機能するためだけでなく、バ​​インディング.pry を LessonPackage.available の最初の行に配置すると、突然機能するからです! しかし今、別のテストが壊れています:

これは、最初のレッスン予約に添付されたレッスン パッケージが、作成された元のレッスン パッケージとは異なる ID を持っているためです。注: このテストは以前は機能していました。唯一の違いは binding.pry です。

私はdatabase_cleanerを使用していますが、これは私が設定した方法です:

0 投票する
0 に答える
195 参照

rspec - 仕様は合格する場合としない場合がある

私は要求仕様を持っています:

完全に合格することもありますが、次のようになることもあります。

理由がわからず、かなり迷惑です。以下を使用して、各テストの後にDBをクリーンアップしdatabase_cleanerます。

編集:

コントローラ:

意見:

部分的:

モデル:

また、次のようなテストがあります。

And@json.lengthはほぼ常に0ですが、時々そうです1

0 投票する
2 に答える
5145 参照

ruby-on-rails - Capybara Webkit でのデータベース クリーナーの問題

Cucumber を使用して統合テストを作成し、 Database Cleanerを使用してデータベースをクリーンに保ちます。私のテストは Javascript を必要としないため、すべてが完全に機能します。

Capybara webkitを使用してこれらの最後のテストをパスさせることができますが、データベースはまったくクリーンアップされません。

ここに私のfeatures/support/env.rbファイルがあります:

カピバラが使用しているドライバーを確認するために、これと同様のことを試みましたが、うまくいきませんでした。この投稿の 3 番目の部分で説明したハックも試しましたが、何も機能しませんでした...

これを達成する方法が本当にわかりません。どんな助けでも大歓迎です。

前もって感謝します。

0 投票する
1 に答える
3848 参照

rspec-rails - Rails 4 データベースクリーナー

Rails 4 アプリのいくつかのテストを完了しようとしていますが、database_cleaner で問題が発生し続けています。問題は、データベースがクリーンアップされておらず、警告が発生し続けることです。

仕様ヘルパーでセットアップした構成は次のとおりです。

そして最後に、これが私のgemfileです

この問題に関するヘルプは本当に役に立ちます。ありがとうございました!

0 投票する
1 に答える
104 参照

ruby-on-rails - このRSpec記述仕様がメソッドに基づいて2つの異なる結果を示しているのはなぜですか?

与えられた

ブロックではit、これはパスします。コメントアウトされた#その部分は通用しません。2 つの異なるオブジェクトを取得します。 expected: "daniel3@example.com" got: "daniel133@example.com" (using ==)

database_cleanerこれはgemのせいですか?何らかの方法で factory/database_cleaner を適切に設定していませんか?

its ブロックでは一致しないのに、it ブロックでは一致するのはなぜですか? どのように違うのでしょうか?

0 投票する
2 に答える
1282 参照

ruby-on-rails - rspec DatabaseCleaner スキップ クリーン グループ メタデータ タグの例

サンプル グループにタグを付けて、各サンプル間でデータベースがクリーンアップされるのではなく、グループ全体の前後でクリーンアップされるようにするにはどうすればよいですか? また、タグの付いていないスペックは、各サンプル間でデータベースをクリーンアップする必要があります。

私は書きたい:

だから私のspec_helper.rbに入れました:

問題はdont_clean: nil、メタデータ タグが指定されていない場合、spec_helper の (または false) ブロックが実行されないことです。例間でクリーニングする前に :dont_clean の存在を確認する別の方法はありますか?

0 投票する
2 に答える
1616 参照

ruby-on-rails - sqlite から PostgreSQL に切り替えた後、各テスト後に DB Cleaner がデータベースをクリーニングしない

私がsqliteを使用していたとき、この設定はうまくいきました:

PostgreSQL に切り替えたとき、テストがデータベース内のエントリの ID 数に依存しているときにエラーが発生し始めました。テスト中にデータベースを調べましたが、データベースがクリーンアップされることはありませんでした。

次の構成に切り替えると:

すべてのテストに合格しましたが、メソッド テストの前後clean を呼び出さなければなりませんか?

各テストの前後にデータベースをクリーンアップする必要はありません。どこかで何かを誤解しているような気がします。私は何を理解できていません。