問題タブ [autofixture]
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.
c# - Castle Windsor を使用して AutoFixture を使用してアプリケーションの統合テストを行う手法
私は AutoFixture を初めて使用するので、次のアイデアが理にかなっているのか、それとも合理的なことなのかわかりません。統合テストを担当しているアプリケーションがあり、Castle Windsor を多用しています。依存関係の管理を簡素化し、テストをアプリケーション コードに近づけるために、テストの初期化メソッドで Windsor コンテナーを構築し、container.Resolve を使用してテスト中のコードをインスタンス化しています。特定の状況での柔軟性が制限されているため、そのアプローチから離れたいと思います。
私がやりたいのは、次のようなテストを行うことです。
これを実現するために、次のことができます。
これを行うとうまくいきますが、回避したいのは、Windsor コンテナーから AutoFixture IFixture への実装マッピングへのすべてのインターフェイスをコピーする必要があることです。
c# - AutoFixture を使用して DDD 値オブジェクトの等価性を単体テストで簡素化する方法
現在、xUnit、Moq、および AutoFixture を使用してドメイン プロジェクトの単体テストを作成しています。このテスト方法を見てみましょう。
ご覧のとおり、クラス CoreAddress とその SameValueAs メソッドをテストしています。考えられるすべてのケースをテストするには、 Test メソッドOnOtherHasDifferentFirstname、OnOtherHasDifferentLastnameなどを作成する必要があります。このパターンは大丈夫ですか? AutoFixture の使用に関して、これを単純化できますか?
autofixture - AutoFixture で null インスタンスをフリーズするにはどうすればよいですか
Autofixture を SUT ファクトリとして使用していますが、null インスタンスのフリーズに問題があります。
私は次のようなことをしたいと思います:
しかし、それは間違いだとすぐに気づきました。私はこれを使用して問題を回避しました:
しかし、それは正しくないようです。
うまくいけば、誰かが HiveMind に正しい解決策を提供してくれるでしょう。
c# - AutoFixtureに最も貪欲なコンストラクターを使用させる
複数のコンストラクターを持つデータ型があり、最も貪欲なもの(パラメーターが最も多いもの)を選択するにはAutoFixtureが必要です。デフォルトの動作では、最小数のコンストラクターを選択します。
著者のブログ投稿http://blog.ploeh.dk/2009/03/24/HowAutoFixtureCreatesObjects.aspxは、この動作をオーバーライドする方法があることを示唆していないようです。そのため、それは可能ですか。
moq - AutoMoq を使用して AutoFixture を介して注入されたモック オブジェクト、予期しない動作
AutoFixture を使用して最初のテストを作成しました。SUT には次のコンストラクターがあります。
テスト セットアップには次のコードがあります。
の内容を調べると、注入された のインスタンスのsut
プロパティが「whatever」ではなく null を返すことがわかります。IpAddress
IClientDataProvider
私は何を間違えましたか?
サービスと必要なインターフェイスを空のプロジェクトにコピーすると、モックが期待どおりに機能しました。
実際のプロジェクトのサービスのコンストラクター引数の型であるインターフェイスは、さらに依存関係を持つ 3 つの個別のアセンブリで定義されます。直接参照されたアセンブリにはさらにいくつかのアセンブリが必要だったため、テストの開始時に予期しない「アセンブリを読み込めません」というエラーがいくつか発生しました。したがって、アセンブリの読み込みの問題のようです。
ただし、Moqを使用して手動で作成されたモックオブジェクトを使用してSUTインスタンスを手動で作成するテストのバリエーションを試したところ、テストは期待どおりに機能しました
autofixture - AutoFixture が Kernel.OmitSpecimen 例外をスローする理由を調べるにはどうすればよいですか
いくつかの循環参照を持つかなりネストされたモデルに取り組んでいます。また、Entity Framework を使用しているため、すべてのリストはICollection<T>
. これに対応するために、次のように AutoFixture を構成しています。
型を作ろうとすると
AutoFixture に問題があり、次のエラーがスローされます
System.InvalidCastException : タイプ 'Ploeh.AutoFixture.Kernel.OmitSpecimen' のオブジェクトをタイプ 'The.Model.Language' にキャストできません
Session
type内のコレクションを除外するとLanguage
、AutoFixture はグラフ内の別の型に対して同じ例外をスローします。
エラーの原因となったプロパティなど、AutoFixture からさらに情報を抽出する方法はありますか?
AutoFixture が私のタイプを OmitSpecimen にキャストしようとするのはなぜですか? また、このプロセスで何がキャストされないようにする可能性がありますか?
ここにスタック トレースの要旨を作成しました。
アップデート
問題を再現することができました。このオブジェクトのペアが与えられた場合
への呼び出し_fixture.CreateAnonymous<Session>();
は、キャスト例外をスローします。
unit-testing - AutofixtureとWebApiコントローラー
AutoFixtureを使用して、WebApiサイトのコントローラーをテストしようとしています。Ploehのブログに記載されているように、私はMoqでAutoData機能を使用しています。
私のコントローラーはコンストラクターでIDepartmentManagerを取ります。これが私のテストです:
このテストを実行すると、次のように失敗します。
GetCallsManagerCorrectlyが失敗しました:
System.InvalidOperationException:理論Provision.Tests.WebApiControllerTests.DepartmentControllerTests.GetCallsManagerCorrectlyのデータの取得中に例外がスローされました:System.Reflection.TargetInvocationException:呼び出しのターゲットによって例外がスローされました。---> System.ArgumentException:「http」および「https」スキームのみが許可されます。パラメータ名:System.Net.Http.HttpRequestMessage.set_RequestUri(URI値)の値
まず第一に、これはまだこれらのテストを書くための有効で推奨される方法ですか?私はそれがすべてをどれほど小さくするかが大好きです。
次に、これを修正するにはどうすればよいですか?テストをこれに変更した場合:
合格しますが、コントローラーを自動的に構築する機能が失われ、コンストラクターにパラメーターを追加しても問題ありません。
c# - AutoFixture は、深くて円形のオブジェクト グラフに圧倒されますか
私が扱っているドメイン モデルには、多くの循環参照があります。実際、グラフ内の任意のポイントからほとんどのオブジェクトにアクセスできます。これらの循環参照の多くは、コレクションにも含まれています。したがって、Booking
はコレクションStudents
を持ち、コレクションをCourses
持ち、コレクションを持ちBookings
ます。これは実際のモデルではなく、単なる例です。この問題は、約 30 の異なるクラスの組み合わせによって引き起こされます。
このモデルで作業するために、私は AutoFixture を次のように構成して使用しています
これにより、AutoFixture は約 20 分間実行され、最終的に OutOfMemoryException で失敗します。
このモデルは AutoFixture に終わりのない無限グラフを作成するように要求していますか? もしそうなら、グラフの深さを制限するように設定する方法はありますか?
c# - AutomockingコンテナとしてのAutoFixtureとAutomockingの違いは?
私はmoqを使い始めましたが、私の理解から、実際にそれらを気にしなくても、呼び出すことができるすべてのメソッドを常にモックアップする必要があります。
やりたいことを忘れてしまうようなものをモックアップするのに時間がかかることがあります。だから私は自動モッキングを見ていましたが、何を使うべきかわかりません。
最初のものの使い方がまったくわかりません。私は2番目のものを手に入れましたが、実際に試したことはありません。
どちらかがもう一方より優れているかどうかはわかりません。私が知っている唯一のことは、最初のものの依存関係であるAutoFixturesをすでに使用しているということです。
したがって、長期的には最初のものを使用するのは理にかなっていますが、私が言ったように、それを使用する方法に関する基本的なチュートリアルは見つかりません。
編集
「NikosBaxevanis」の例に従おうとしていますが、エラーが発生しています。
私のpetapocounitOfWorkプロパティのせいだと思います
どういうわけかこれをモックアップしたのかどうかわからない。
c# - 自動フィクスチャを使用して構造体を作成しても、パブリックコンストラクタエラーはスローされません
私は構造体を持っています例:
オートフィクスチャを使用してユニットテストで作成したいと思います。私は以下を使ってみました:
しかし、これはAutoFixture was unable to create an instance
エラーをスローします。autofixtureを使用して構造体を自動作成することは可能ですか?これはどのように行うことができますか?私はレガシーコードに取り組んでいるため、構造体を処理する必要があることに注意してください。:)
編集 :
かわった
に
質問には関係がなかったので。