2017-01-31 22 views
1

私はfscheckを採用しようとしていますが、C#のドキュメントがあまりないため、非常に困難です。あなたは説明することができますなぜ、以下の例を使用してプロパティのコンビネータが失敗する(明らかに、私はそれを正しく使用する方法を理解していません)?FsCheck c#プロパティコンビネータ

[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); 
    } 
+0

例を求めることは、SOの話題とみなされます。 – Amy

答えて

1

実際には本当に失敗するわけではありません。「n回のテスト後に疲れている」と言うだけです。

Whenを使用すると、FsCheckは、Whenで指定された条件を満たしていないため、捨てなければならなかった生成値の数を追跡します。デフォルトでは、これは1000の値です。

これは、条件が厳しすぎることを示します。ジェネレータは、多くの場合、Whenの条件を満たす値を生成しません。

これは単なる安全ネットであり、テスト時間が風船にならない、またはテストが完全に止まってしまいます。

ところで、これはここで説明します:https://fscheck.github.io/FsCheck/Properties.html#Conditional-Properties C#の例。

関連する問題