我正在使用C#中的xunit和FsCheck生成随机类数据。由于EF,其中一些包含ICollection<ChildElement> Children {get; set;}
属性。由于这种特性,生成器被卡住了。我知道可以为特定类定义自己的生成器。但这很诱人,我会想念财产的。
是否可以为此定义一个更通用的解决方案?跟随生成器也不起作用:
public class ICollectionGenerator
{
public static Arbitrary<ICollection<T>> Collection<T>()
{
return Arb.From(Arb.Generate<List<T>>().Select(x => (ICollection<T>)x));
}
}
答案 0 :(得分:0)
FsCheck内置了ICollection<T>
的生成器,因此您无需自己提供它。但是,如果T
是FsCheck不知道如何立即生成的类型,则无法使用-大概ChildElement
是其中一种类型。但是,如果您可以编写一个Arbitrary<ChildElement>
实例并将其提供给需要ICollection<ChildElement>
的测试,则FsCheck将能够自动将它们放在一起。