【问题标题】:FsCheck generate POCO with ICollection<T>FsCheck 使用 ICollection<T> 生成 POCO
【发布时间】:2020-01-14 08:00:43
【问题描述】:

我正在使用 C# 中的 xunit 和 FsCheck 来生成随机类数据。由于 EF,其中一些包含 ICollection&lt;ChildElement&gt; 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));
        }
    }

【问题讨论】:

    标签: c# fscheck


    【解决方案1】:

    ICollection&lt;T&gt; 的生成器内置在 FsCheck 中,因此您无需自己提供。但是,如果 T 是 FsCheck 不知道如何开箱即用生成的类型,它将不起作用 - 大概 ChildElement 是其中一种类型。但是,如果您可以编写 Arbitrary&lt;ChildElement&gt; 实例并将其提供给需要 ICollection&lt;ChildElement&gt; 的测试,FsCheck 将能够自动将两者组合在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 2016-03-25
      • 2016-07-19
      • 1970-01-01
      • 2011-08-06
      • 2011-11-16
      • 1970-01-01
      相关资源
      最近更新 更多