...

パッケージ quick

import "testing/quick"
概要
目次

概要 ▾

quick パッケージは,ブラックボックステスト用の便利関数を実装します。

testing/quick パッケージは固まっており,新たな機能は受け付けていません。

func Check

func Check(f interface{}, config *Config) error

Check は, f への入力,つまり bool を返す関数 (f が false を返すような関数) を探します。 各引数に任意の値を指定して, f を繰り返し呼び出します。 与えられた入力に対して f が false を返す場合, Check はその入力を *CheckError として返します。 例えば :

func TestOddMultipleOfThree(t *testing.T) {
	f := func(x int) bool {
		y := OddMultipleOfThree(x)
		return y%2 == 1 && y%3 == 0
	}
	if err := quick.Check(f, nil); err != nil {
		t.Error(err)
	}
}

func CheckEqual

func CheckEqual(f, g interface{}, config *Config) error

CheckEqual は, f と g が異なる結果を返す入力を探します。 各引数に任意の値を指定して, f と g を繰り返し呼び出します。 f と g が異なる答えを返す場合, CheckEqual は入力と出力を記述する *CheckEqualError を返します。

func Value

func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool)

Value は与えられた型の任意の値を返します。 型が Generator インターフェースを実装している場合は,それが使用されます。 注 : 構造体に任意の値を作成するには,すべてのフィールドをエクスポートする必要があります。

type CheckEqualError

CheckEqualError は, CheckEqual がエラーを見つけた結果です。

type CheckEqualError struct {
    CheckError
    Out1 []interface{}
    Out2 []interface{}
}

func (*CheckEqualError) Error

func (s *CheckEqualError) Error() string

type CheckError

CheckError は, Check がエラーを見つけた結果です。

type CheckError struct {
    Count int
    In    []interface{}
}

func (*CheckError) Error

func (s *CheckError) Error() string

type Config

Config 構造体はテストを実行するためのオプションを含みます。

type Config struct {
    // MaxCount は最大反復回数を設定します。
    // ゼロの場合, MaxCountScale が使用されます。
    MaxCount int
    // MaxCountScale は,デフォルトの最大値に適用される負ではない倍率です。
    // ゼロの場合,デフォルトを意味します。デフォルトは通常 100 ですが,-quickchecks フラグで変更可能です。
    MaxCountScale float64
    // Rand は乱数の発生源を指定します。
    // nil の場合,デフォルトの疑似乱数ソースが使用されます。
    Rand *rand.Rand
    // Values は任意の reflect のスライスを生成する関数を指定する。
    // テストされている関数への引数と一致する値。
    // nil の場合,最上位の Value 関数がそれらを生成するために使用されます。
    Values func([]reflect.Value, *rand.Rand)
}

type Generator

Generator はそれ自身の型の乱数値を生成することができます。

type Generator interface {
    // Generate は,サイズヒントとして size を使用するメソッドである型のランダムなインスタンスを返します。
    Generate(rand *rand.Rand, size int) reflect.Value
}

type SetupError

SetupError は,テストされている関数とは無関係に, check が使われている方法におけるエラーの結果です。

type SetupError string

func (SetupError) Error

func (s SetupError) Error() string