在fscheck中使用带过滤项的属性

时间:2017-07-20 00:19:00

标签: c# xunit fscheck

我刚刚开始使用FsCheck,想深入挖掘一下,我有以下测试用例:

[Property]
public void some_test(HttpStatusCode httpStatusCode)

现在,我只想要失败的httpStatusCode,如何使用FsCheck实现?我有以下代码:

Prop.ForAll<HttpStatusCode>(code => new Func<bool>(() => !new HttpResponseMessage(code).IsSuccessStatusCode).When(true)).QuickCheck();

但不知道如何将其挂钩到我的测试用例的Property属性中。网上的例子对于如此微不足道的事情来说相当复杂。任何帮助或指导将不胜感激。

对于this这样的东西会更好,但是对于自定义对象和自定义逻辑。

干杯。

1 个答案:

答案 0 :(得分:0)

您可以使用When方法进行过滤。

类似的东西:

Prop.ForAll<HttpStatusCode>(code => 
    !new HttpResponseMessage(code).IsSuccessStatusCode)
    .When(code is failure)   
)
.QuickCheck();