21

System.Type のみを使用して、AutoFixture からオブジェクトを作成する必要があります。CreateAnonymous()ただし、単純に型を取る のオーバーロードはないようです。System.Type を T に変換する方法はありますか?

使用状況の詳細を編集:

複雑なマッピング シナリオをサポートするコンポーネントを挿入するためのフックを持つ AutoMapper を使用しています。

void ConstructServicesUsing(System.Func<Type,object> constructor)

署名からわかるように、クライアントはFunc、挿入されたサービス (ほとんどの場合 ValueResolver 実装) が必要なときにいつでも AutoMapper が呼び出す を登録できます。

プロダクション ビルドでは、このメソッドは StructureMap コンテナを呼び出してコンポーネントを取得します。ただし、マッピング コードを単体テストする場合は、スタブ実装を提供する必要があります。そうしないと、AutoMapper が例外をスローします。AutoFixture + Moq を自動モック コンテナーとして使用しているため、AF が完全にハイドレートされたスタブを作成するのは当然のことのように思われるため、単体テスト コードの記述に集中できます。

4

2 に答える 2

39

可能ですが、これを行う必要はほとんどないため、意図的に非表示にしています。

var specimen = new SpecimenContext(fixture).Resolve(type);

AutoFixture には多くの拡張ポイントがあり、多くの場合、弱く型付けされた Create メソッドよりも優れた代替手段を提供します。何を達成しようとしていますか?

于 2013-05-14T15:38:08.213 に答える