2017-01-31 5 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# 예).