問題タブ [factories]

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

ruby-on-rails - テストの実行時に Factory Girl エラーが発生する has_many

Factory Girl を使用して has_many スルー リレーションシップを設定するのに苦労しています。私は 2 つのモデル コースとカテゴリを持っています。コースは多くのカテゴリを持つことができます。私は 2 つのファクトリー コースとカテゴリを持っています。

私はこの3つのモデルを持っています

工場

個々のファイルのカテゴリ ファクトリ

テストの実行時に発生するエラーは次のとおりです。

パートナーにはコースの有効なファクトリがあります 失敗/エラー: expect(FactoryGirl.create(:course)).to be_valid ActiveRecord::RecordInvalid: 検証に失敗しました: 名前は既に使用されています

私がやりたいのは、1 つ以上のカテゴリを持つコースを作成することです。ここで何が間違っているのかわかりませんが、コース ファクトリを有効にする必要があります。私のカテゴリ ファクトリが有効であることはわかっています。

カテゴリを 2 回作成しようとしているようです。そのため、名前が既に存在するというエラーが発生しています。

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

domain-driven-design - DDD とファクトリ - 集中的な CRUD 操作

非常に多くの明白な利点 (Active-Record パターン スクールから得られる) と、まだ不明な点がいくつかあるため、私たちは最近、私のチームで新しいプロジェクトに DDD を採用することを決定しました。

次のエンティティに依存するエンティティ トランザクションがあるとします (それぞれが他の非常に多くのエンティティに依存します): 1. 顧客 2. アカウント 3. 通貨

ファクトリを使用してトランザクション エンティティをインスタンス化して、複雑なビジネス ルールのためにドメイン サービスに渡す場合、これらすべての依存インスタンスをセットアップするために非常に多くのクエリを作成する必要がありますか?

このような依存関係をスキップするオーバーロードがファクトリにある場合、それらは場合によっては null になり、それらのプロパティにアクセスできるときとアクセスできないときを区別するのが複雑になりすぎます。Active-Record パターンでは、遅延読み込みを使用して、オンデマンドでのみ読み込むようにしています。DDDに関するアイデアはありますか?

編集:

私のシナリオでは、「トランザクション」が集約ルートの最良の候補のようです。アプリケーション サービス「InitiateTransaction」でメソッドを定義し (これには PayPal へのリダイレクトが含まれるため、「FinalizeTransaction」もあります)、AccountId、CurrencyId、LanguageId、およびその他のさまざまな外部キーとトランザクションを運ぶために必要な DTO をパラメーターとして受け取ります。属性。

ドメイン サービス (Transaction Processor および Fraud Rule Evaluator) を呼び出すときは、すべての依存関係 (「Transaction.Customer」、「Transaction.Currency」など) が読み込まれた「Transaction」集計を指定する必要があります。

したがって、私が正しければ、必要な手順は次のとおりです。 1.いくつかのリポジトリを呼び出して、顧客、通貨などを取得します。 2.上記で指定した依存関係を使用して TransactionFactory を呼び出し、トランザクション オブジェクトを取得します。行われるルール

正しい?さらに、私の懸念はステップ1と2についてでした。

「Customer」、「Currency」、およびその他のエンティティ/値オブジェクト「Transaction」が依存している場合は、他の依存関係があります。それらも設定しようとしますか?私がそうすると、アプリケーションサービスで非常に肥大化したコードになり、別のメソッドに配置するのにあまり再利用できないように思われるからです。ただし、あなたが提案したように「GetById(id)」を使用してリポジトリからそれらを取得しないと、「ユーザー」を返すプロパティ「Transaction.Customer.CreatedByUser」が必要であると言うように、コードがバグになる可能性があります。リポジトリはフラット インスタンスのみをロードするため、null になります。

編集:

結局、GetById(id) を使用して、自分のサービスで必要であることがわかっている依存関係のみを読み込むことになりました。フラットローディングのために誤って null インスタンスにアクセスするのはあまり楽しいことではありませんが、本番環境に持ち込まないようにユニットテストを行っています!!

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

ruby-on-rails - FactoryGirl initialize_with 複数のパラメーター

初期化に複数のパラメーターを持つモデルがあり、そのうちの 1 つはインスタンス化時にモデルのメソッドで使用されます。

そして、これらのパラメータを使用して初期化するファクトリを作成しようとしていますが、wrong number of arguments実行しようとするとエラーが発生します:

しかし、これは私に与えますwrong number of arguments (0 for 3)。に複数の引数を渡すことはできませんinitialize_withか?

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

ruby-on-rails - 初期化されていない定数 TestFactory (NameError)

私は Ruby on Rails の初心者で、wiki プロジェクトの「ユーザー サインイン」仕様を書いています。次のエラーが表示されます。

これは私のsign_in_spec.rbです

これは私の test_factories.rb ファイルです:

これは私のGemfileです:

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

ruby - ファクトリで列 'メソッド' を設定できませんでした

「メソッド」という名前の列を含むデータベース テーブルのファクトリを定義する必要があります。

私はこのようなことを試しました:

しかし、ビルドしようとすると、次のエラーが表示されました。

「メソッド」をデータベース列ではなく関数として識別しているようです。:methodまたはでこれを強調しようとしまし"method"たが、うまくいきませんでした。

したがって、このファクトリを機能させるには、次のように構築する必要があります。

このハックを回避し、工場でこの列を適切に定義する方法はどこにありますか?

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

angularjs - 角度 1.3.9 | コントローラ 2 の変更時に、コントローラ 1 でサービスが更新されない

いつもありがとうございます。私はAngularが初めてで、徐々に複雑になっているチュートリアルからtodoappを構築することで学ぼうとしています。

私が今抱えている課題は、ユーザーがパスポート経由でログインしたときに更新され、コントローラー間で状態を共有できるグローバル変数 isLoggedIn を設定する最良の方法を理解しようとすることです。

これが私のコードです:

  • コントローラーにサービスを挿入し、スコープ変数として設定する場所を確認できます。
  • login 関数が userController で呼び出されると、ユーザー コントローラーの $scope 変数が true に更新されます... mainController 変数は更新されません。
  • もちろん、mainController のスコープ変数を更新することによる回避策があります...しかし、それはグローバル変数を持つという点をデフォルトにします。
  • また、単純な変数と別の方法の両方を関数として返す単純なファクトリも試しました。

  • 「TodoFactory」も 2 回リストアップしているため、少し混乱しています。最初の参照を「TodoFactory」から取り出すと、それを関数として渡す直前に未定義のエラーが発生します。

どんな助けでも大歓迎です。

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

ruby-on-rails-4 - いつモック オブジェクトと Factory (FactoryGirl) を書くべきか

私は非常に大きな Rails コード ベースを持っており、多くのファクトリ (FactoryGirl) を使用しています。問題は、factory girl のインスタンスがデータベース トランザクションを作成するため、テスト スイート全体を実行すると、非常に長い時間がかかることです。ただし、Rspec モックを正しく使用すれば、モックはフェザー ライトであるため、テストは非常に高速に実行されます。DB トランザクションは必要ありません。

私の質問: いつロール、エンティティ、またはオブジェクトをモックし、いつオブジェクトの有効なインスタンスを使用しますか? 誰かが例を提供できれば、それは素晴らしいことです。