Ваш первый подход хорошо работает для меня - мне просто нужно было определить configuration
, который не включен в ваш вопрос, но, предположительно, определен где-то в вашем фактическом файле. Следующие компилируется и ведет себя как ожидалось для меня:
let configuration = { aaa = 1 }
Assert.Throws<ArgumentException>(fun () -> Client(configuration) |> ignore)
Ваш второй фрагмент кода не работает, поскольку он содержит ignore
в неправильном месте - вы игнорируете всю функцию (которая содержит код, который вы хотите проверить), а затем передаете unit
утверждению. Вызов ignore
должен быть внутри функции, чтобы он игнорировал результат вызова конструктора. У меня работает следующее:
(fun() -> Client(configuration) |> ignore) |> should throw typeof<ArgumentException>