簡體   English   中英

FsCheck c# 當屬性組合器

[英]FsCheck c# When property combinator

我正在嘗試采用 fscheck,但由於 C# 沒有太多文檔,所以很難。 你能解釋一下,為什么下面這個使用 When combinator 屬性的例子失敗了(顯然,我不明白如何正確使用它)?

 [Test]
    public void WherePorperty()
    {
      Prop.ForAll(NotNullString().ToArbitrary(), s=>s.StartsWith("A").When(s.StartsWith("A"))).VerboseCheckThrowOnFailure();
    }

    public Gen<string> NotNullString()
    {
      return Arb.Generate<string>().Where(s => s != null);
    }

它實際上並沒有真正失敗,它只是說“經過 n 次測試后參數耗盡”。

當您使用When FsCheck 跟蹤它必須丟棄多少生成的值,因為它們不滿足When給出的條件。 默認情況下,這是 1000 個值。

這表明條件過於嚴格,生成器沒有足夠頻繁地生成滿足When條件的值。

這只是一種安全網,因此測試時間不會增加,或者測試完全卡住。

順便說一下,這里解釋了: https : //fscheck.github.io/FsCheck/Properties.html#Conditional-Properties與 C# 示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM