問題タブ [fixtures]

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 投票する
6 に答える
7325 参照

ruby-on-rails - Rails テストがシード データを削除しないようにする

私はいくつかの状態モデルの参照データを入力するために、seeds.rb を使用しています。

私は状態フィクスチャを使用していませんが (そもそもシード データであるため、純粋にテストのためにこれを複製する必要があるのは DRY ではないと思います)、Rails テスト フレームワークはテスト中にすべての状態シード データを削除するようです。(テストデータベースを削除、再作成、移行、および再シードしており、単体テストを実行する前にデータが存在することを確認しています。)

その結果、次のアサーションは、seeds.rb では成功しますが、1 行のテストでは失敗します。

ベース テスト クラスのフィクスチャ ステートメントで非 State モデルを明示的にリストすることと、トランザクション フィクスチャ フラグを反転することの両方を試みました (予想どおり、これはテスト中に作成されたレコードにのみ影響します)。当然、検討中のテスト自体がこれらのレコードを削除するわけではありません。

State レコードは常に削除されます。Railsにシードデータから手を離すように指示する方法はありますか? 確実に再ロードされるように、フィクスチャ内のすべてのデータを複製する必要がありますか? 主要な政治イベントを除けば、州のデータは比較的安定していると思います。

ティア

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

django - django フィクスチャ: syncdb に複数のフィクスチャをロードする

現在、initial_data.json には多くのものが含まれています。すべてのファイルが同じ manage syncdb コマンドを介してロードされるように、ファイル内のデータを (モデルごとに) 分割する方法があるかどうか疑問に思いましたか?

私は最近、この問題を再検討し、コードを「実際の」post_syncdb シグナルにフックするより良い方法を思いつきました。

http://www.djangosnippets.org/snippets/1988/

0 投票する
3 に答える
1123 参照

ruby-on-rails - Railsフィクスチャ - テーブル名を定義しますか?

現時点では、すべてのフィクスチャが目的のテーブルと同じ名前になっています。レールに関する最近の問題により、'test' という単語で始まるフィクスチャを作成することはできないようです。

別のフィクスチャ名を付けて正しいテーブルにマップする方法を知っている人はいますか?

ありがとう、アンディ

0 投票する
3 に答える
22306 参照

ruby-on-rails - Railsフィクスチャがrspecでロードされない

そこで、Rails プロジェクトのコンテキストで rspec BDD テスト フレームワークを学習しようとしています。私が抱えている問題は、私の人生では、フィクスチャを rspec 記述で適切にロードできないことです。

免責事項: はい、使用するフィクスチャよりも優れたものがあります。factory-girl、mocha、auto-test などの関連ツールをいじる前に、ここ (具体的には rspec) で一度に 1 つのことを学ぼうとしています。 、不格好な場合は、フィクスチャが機能しています。

とにかく、ここにコードがあります:

/test/fixtures/users.yml -

/spec/controllers/pages_controller_spec.rb -

そして、「rake spec」を実行すると得られるものは次のとおりです。

つまり、'user(:foo)' を有効なメソッドとして認識していません。

'rake db:fixtures:load' を介して開発データベースにロードすると、そのデータベースに foo と bar が存在することを確認できるため、フィクスチャ自体は問題ないはずです。

ここで明らかな何かが欠けているように感じますが、一日中髪を引き裂いていましたが、役に立ちませんでした. どんな助けでも大歓迎です。

0 投票する
10 に答える
15356 参照

ruby-on-rails - Rails で factory_girl を一意の制約を持つ関連付けと共に使用する。重複エラーの取得

私はRails 2.2プロジェクトで作業しており、それを更新しています。既存のフィクスチャをファクトリ (factory_girl を使用) に置き換えていますが、いくつかの問題がありました。問題は、ルックアップ データを含むテーブルを表すモデルにあります。同じ商品タイプの 2 つの商品でカートを作成すると、作成された各商品が同じ商品タイプを再作成しています。これは、ProductType モデルの一意の検証によるエラーです。

問題のデモンストレーション

これは、カートを作成してバラバラにまとめた単体テストからのものです。問題を回避するためにこれを行う必要がありました。ただし、これはまだ問題を示しています。説明します。

追加される 2 つの製品は同じタイプであり、各製品が作成されると、製品タイプが再作成され、重複が作成されます。

生成されるエラーは次のとおりです。

回避策

この例の回避策は、使用されている製品タイプをオーバーライドし、特定のインスタンスを渡して、1 つのインスタンスのみが使用されるようにすることです。「add_product_type」は早い段階で取得され、各カート項目に渡されます。

質問

「選択リスト」タイプの関連付けで factory_girl を使用する最良の方法は何ですか?

テストでアセンブルするのではなく、ファクトリ定義にすべてを含めたいと思いますが、それでも問題ありません。

背景と詳細

工場/product.rb

ProductType の「コード」の目的は、アプリケーションがそれらに特別な意味を与えることができるようにすることです。ProductType モデルは次のようになります。

工場/cart.rb

同じ商品タイプの 2 つのアイテムでカートを定義しようとすると、上記と同じエラーが発生します。

0 投票する
3 に答える
2443 参照

django - Django JSON フィクスチャ生成

私は Rails から来た Django を初めて使いました。Django のフィクスチャ (私が収集したものから最も一般的には JSON) は、少なくとも私が慣れ親しんでいる Rails のフィクスチャと比較すると、ややぎこちなく扱いにくいと感じています。などの Ruby コードを埋め込んだり <%= Time.now %>、外部キーと関連付けるときに他のフィクスチャを名前で参照したりできるのが気に入りました (ID を追跡する必要がないように)。

では、Django 開発者がフィクスチャを構築する経験をどのように積んでいますか。座って JSON/XML/YAML を手動で記述しますか?それとも、Rails が提供するのと同様に役立つ他のツールはありますか? それとも、手動でフィクスチャを記述するのではなく、./manage.py シェルでデータを作成し、そのデータをフィクスチャにダンプするのが最も簡単ですか? それとも、テスト クラスの setUp(self) メソッドに大量のデータを入れていますか。もう少し経験を積めば、これらのことを手で書くのが面倒でなくなるのではないでしょうか?

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

django - django フィクスチャでの翻訳

以下は initial_data.json の例です。列「名前」の値をdjangoに翻訳ファイルに保存させたい。そのため、後で値がどこかに出力されるときに、その変換された値を使用できます。それを行う方法はありますか?ありがとう。

0 投票する
4 に答える
4724 参照

ruby-on-rails - Ruby on Rails と db:fixtures:load - 一部のモデルを無視できますか?

Ruby on Rails アプリケーションで 2 つのデータベースを使用しています。1 つはアプリケーション用のデータベースで、もう 1 つは Rails が制御できない独立したデータベースです。

問題は、開発にフィクスチャをロードするときに、開発データベースへの接続から独立したデータベースのテーブルで DELETE ステートメントを実行しようとすることです。これは明らかにエラーになります。

私はRailsに何もしようとさせたくないが、独立したデータベースを読んでもらいたくない - 特にテーブルを削除しようとさせたくない。

フィクスチャをロードするときに 2 番目のデータベースのモデルを無視するように Rails に指示する簡単な方法はありますか?

更新: 明確にするために、Rails は、独立したデータベースからのテーブルが開発接続の一部であると考えているようですが、モデル クラスで を使用して正しい接続を指定しましたestablish_connection。別の注記として、すべてのモデル クラスは から希望どおりに正確に機能しますscript/console

0 投票する
4 に答える
3036 参照

django - djangoテスト用のフィクスチャの読み込み

テストでいくつかのフィクスチャを使用したいと思います。

私はcms_sampleアプリとフィクスチャフォルダを中に持っています:cms_sample_data.xml

私は私の中で以下を使用しますtest.py

私は使用しますが、使用しませんTestCasedjango.testsunittest

ただし、フィクスチャはロードされません。私は何が欠けていますか?

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

ruby-on-rails - テストが多対多のフィクスチャをロードしない

Test を使用してアプリケーションをテストしています。users.yml、roles.yml、roles_users.yml などのフィクスチャがあります。ユーザーとロールはロードされますが、多対多のテーブル roles_users はロードされないため、ユーザーはどのロールにも関連付けられません。開発中のRailsコンソールではすべて問題ありません。テストでは、ユーザーはどのロールにも接続されていません。テスト データベースでユーザーとロールを確認できますが、roles_users は空です

このフィクスチャをロードする方法をどこかに指定する必要がありますか?