私は今、私の質問に答えることができます@マークシーマンのおかげだから:
public class ImmutableListSpecimenBuilder : ISpecimenBuilder
{
public object Create(object request, ISpecimenContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
var t = request as Type;
if (t == null)
{
return new NoSpecimen();
}
var typeArguments = t.GetGenericArguments();
if (typeArguments.Length != 1 || typeof(ImmutableList<>) != t.GetGenericTypeDefinition())
{
return new NoSpecimen();
}
dynamic list = context.Resolve(typeof(IList<>).MakeGenericType(typeArguments));
return ImmutableList.ToImmutableList(list);
}
}
と使用方法:
var fixture = new Fixture();
fixture.Customizations.Add(new ImmutableListSpecimenBuilder());
var result = fixture.Create<ImmutableList<int>>();
文字列のための素晴らしい作品
を!すべてのタイプに対して汎用性を持たせる方法はありますか? – user963935
@ user963935もう少し複雑ですが、[ListRelay](https://github.com/AutoFixture/blob/master/Src/AutoFixture/Kernel/ListRelay.cs)のような 'ISpecimenBuilder'を書くことができます。 )。 –