(これを行う方法が見つかりませんでした。ソースコードからはサポートされていないようですが、見落としている可能性があります)
私は次のようなことをしたいと思います:
(new Fixture())
.CreateAnonymous<Circle>(
new CircleSpecification { MinRadius = 1, MaxRadius = 5 }
);
したがって、これはAutoFixtureにすでに存在する同様のシードイディオムのバリエーションですが、シードイディオムは非常にハードコーディングされています(またはそう思います)。
Quiestion:標本の引数を受け入れるようにフィクスチャをカスタマイズすることは可能ですか?
私がこれまでに持っている最善のアイデアは、結果オブジェクトを含む特別な仕様クラスを作成することです。これにより、次のことができるようになります。
public class CircleSpecification {
public double MinRadius { get; set; }
public double MaxRadius { get; set; }
public Circle Circle { get; set; }
}
使用できる登録CircleSpecificationSpecimenBuilder
できるように:
Circle circle = Fixture.CreateAnonymous<CircleSpecification>(
new CircleSpecification { MinRadius = 0.0, MaxRadius = 5.0 }).Circle;
シードオーバーロードでCreateAnonymousを使用するには、シード引数タイプがメソッドの戻りタイプと一致する必要があることに注意してください。