問題タブ [factory-bot]

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

ruby-on-rails - Rails でフィクスチャを Factory Girl に変換する

フィクスチャを Rails の "Factory Girl" に移行したいと考えています。

factory.rb ファイル内のすべての yml ファイルを変換する簡単な方法はありますか?

0 投票する
11 に答える
46978 参照

ruby-on-rails - Factory girl で has_and_belongs_to_many 関連付けを作成する方法

以下を考えると

双方向の関連付けを含め、企業とユーザーの工場をどのように定義しますか? これが私の試みです

今私は試します

おそらく当然のことながら、ファクトリがお互いを再帰的に使用して自分自身を定義するため、無限ループが発生します。

さらに驚くべきことに、これを行う方法についての言及がどこにも見つかりませんでした。必要なファクトリを定義するためのパターンはありますか、それとも根本的に間違ったことをしていますか?

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

ruby-on-rails - Shoulda + FactoryGirl:テストを速くすることはできますか?

私はShoulda + FactoryGirlテストをスピードアップする方法を探しています。

テストしようとしているモデル(StudentExam)には、他のモデルとの関連付けがあります。これらの関連オブジェクトは、を作成する前に存在している必要がありますStudentExam。そのため、で作成されsetupます。

ただし、モデルの1つ(School)の作成にはかなりの時間がかかります。setupすべてのステートメントの前に呼び出されるためshould、テストケース全体の実行には何年もかかります。つまり、実行されるすべてのshouldステートメントに対して新しい、、が作成されます@school@student@topic@exam

これらのオブジェクトを一度だけ作成する方法を探しています。テストケースの残りの部分を通して持続するレコードを作成できるstartupforメソッドのようなものはありますか?before_all

基本的に私はRSpecのbefore(:all)とまったく同じものを探しています。これらのテストではこれらの高価なオブジェクトが変更されることはないため、依存関係の問題については心配していません。

これがテストケースの例です。長いコードについてお詫びします(私も要点を作成しました):

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

ruby-on-rails - キュウリでfactory_girlとの関連付けを設定するためのベストプラクティスは何ですか?

私は通常、次の手順を使用して、factory_girlでレコードを設定します。

アソシエーションを設定する際の回避策は次のとおりです。

私はこれが悪いことを知っています。IDを使用すると、ドメインパーソンの観点から、すべてが脆弱で不可解になります。

だから、私の質問は-factory_girlと上記のようなテーブル引数との関連付けを設定するためのベストプラクティスは何でしょうか?

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

ruby - Factory Girl ロギングのサイレンシング

空気をきれいにするために、私は働く女性を黙らせようとしている残酷な工場長ではありません。仕様でソートボットのファクトリー ガールを使用すると、Factory.create(:foo) が使用されるたびに、新しく作成された ActiveRecord モデル インスタンスがコンソールに記録されるという、非常に厄介な問題が発生しています。これにより、コンソール出力を見て、すべての余分なログを視覚的に除外することがより困難になります。この余分なログを無効にする設定または設定できるフラグはありますか?

以下は、私の rspec 出力の小さな例です。「。」この場合、各行の先頭にあるのは、成功したテストです。

どこかに「puts foo.inspect」があるかどうかを確認するために何度も仕様を調べましたが、ありません。これは、autotest を使用するすべての rspec および cucumber テストで発生し、通常はテストを個別に実行します。

上記の出力に関連するfactory.rbファイルを次に示します。注: 私の factory.rb には、いくつかの小さな空想が起こっています。

[更新:2009-11-20] これを最新の状態に保ち、他の誰かがアイデアを持っているかどうかを確認しようとしています。

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

ruby-on-rails - テストとestablish_connection

establish_connectionモデルで別のデータベースに接続するために使用するプロジェクトのテストを作成するにはどうすればよいですか?

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

ruby-on-rails - factory_girl 関連付けの検証

Fooと の両方の親モデルがあるという問題がhas_many :barsありhas_many :bazesます。最後に、モデルBarBazwhichbelongs_to :barbelongs_to :baz. bar と baz の両方が同じ foo に属するように、すべての bar_bazes を検証したいと考えています。しかし、このモデルの有効なファクトリを定義する方法がわかりません。

後者を作成しようとすると、無効なレコード エラーが発生します。これは、bar と baz factory_girl がそれぞれ独自の foo を関連付けようとするためです。私はめちゃくちゃですか?

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

ruby-on-rails - ActiveSupport::TestCase と Test::Unit::TestCase の単体テスト レール

最近、テストのサブクラスが Test::Unit::TestCase の場合、テストの実行後にテスト データベースがクリーンアップされていないことに気付きました。私のテストが ActiveSupport::TestCase のサブクラスである場合、すべてが適切にクリーンアップされます。

誰かが理由を説明したり、どちらを使用するかを説明したりできますか?

私はshouldaとfactory_girlを使用しています。

ありがとう。