Как передать тип в качестве параметра атрибута, используя синтаксис F#?
FsCheck позволяет настраивать Arbitrary
в его интеграции NUnit:
[<Property(Verbose = true, Arbitrary= [typeof<Test.Arithmetic.MyArb>])>]
static member MultiplyIdentity (x: int64) = x * 1 = x
Этот синтаксис не работает. Я чувствую себя немного смущенным, чтобы спросить, но, по-видимому, я никогда не нуждался в этом раньше: как вы определяете тип в F# в качестве параметра атрибута? Microsoft ничего не говорит об этом, как и проект Wikibooks, и у меня есть некоторые проблемы с поиском в Google (тип слова вездесущ).
Примечание 1: Arbitrary
параметр имеет тип Type []
,
1 ответ
Решение
Я думаю, что вы близко, но [1;2;3]
создает list<int>
, вы хотите массив, используя [| 1;2;3 |]
:
[<Property(Verbose = true, Arbitrary= [| typeof<Test.Arithmetic.MyArb> |])>]
static member MultiplyIdentity (x: int64) = x * 1 = x