Go は吊しで testing/quick
を property based testing 用に持っているけど、チト薄い感じだったので gopter
を試す…
gopter
(というか property based testing) の基本は、値の generator が作った値を不変条件を表す関数に流し込んで OK/NG を判定する事。値の生成は gopter
がよしなにやってくれる(generator で頑張れば、失敗した後に失敗した事例の絞り込み(property test 界隈では Shrinking と呼称される)も出来る)
// Borrowed from official gopter documentation.
func TestSqrt(t *testing.T) {
// Property holder