我試圖學習如何正確使用FsCheck,並將它與Expecto整合在一起。如果我使用默認的FsCheck配置,我可以運行屬性測試,但是當我嘗試使用自己的Generator時,會導致堆棧溢出異常。Expecto FsCheck在生成字符串時出現堆棧溢出異常
這裏是我的發電機
type NameGen() =
static member Name() =
Arb.generate<string * string>
|> Gen.where (fun (firstName, lastName) ->
firstName.Length > 0 && lastName.Length > 0
)
|> Gen.map (fun (first, last) -> sprintf "%s %s" first last)
|> Arb.fromGen
|> Arb.convert string id
而且我試圖用這樣的:
let config = { FsCheckConfig.defaultConfig with arbitrary = [typeof<NameGen>] }
let propertyTests input =
let output = toInitials input
output.EndsWith(".")
testPropertyWithConfig config "Must end with period" propertyTests
拋出異常甚至進入了Gen.where
函數之前
什麼我做錯了嗎?謝謝