Использование свойства в 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 для моего тестового примера. Примеры онлайн довольно запутаны для чего-то столь тривиального. Любая помощь или руководство будут оценены.

Было бы неплохо иметь что-то вроде этого. но для пользовательских объектов и пользовательской логики.

Ваше здоровье.


person Ruskin    schedule 20.07.2017    source источник


Ответы (1)


Вы можете использовать метод When для фильтрации.

Что-то типа:

Prop.ForAll<HttpStatusCode>(code => 
    !new HttpResponseMessage(code).IsSuccessStatusCode)
    .When(code is failure)   
)
.QuickCheck();
person Kurt Schelfthout    schedule 21.10.2017