[英]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.