Package quick
Обзор
Пакет quick реализует вспомогательные функции для тестирования методом чёрного ящика.
Пакет testing/quick заморожен: новые возможности в него не добавляются.
Указатель
Файлы пакета
quick.go
func Check
func Check(f any, 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 any, 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 []any
Out2 []any
}
func (*CheckEqualError) Error
func (s *CheckEqualError) Error() string
type CheckError
CheckError — результат обнаружения ошибки функцией Check.
type CheckError struct {
Count int
In []any
}
func (*CheckError) Error
func (s *CheckError) Error() string
type Config
Структура Config содержит параметры для запуска теста.
type Config struct {
// MaxCount sets the maximum number of iterations.
// If zero, MaxCountScale is used.
MaxCount int
// MaxCountScale is a non-negative scale factor applied to the
// default maximum.
// A count of zero implies the default, which is usually 100
// but can be set by the -quickchecks flag.
MaxCountScale float64
// Rand specifies a source of random numbers.
// If nil, a default pseudo-random source will be used.
Rand *rand.Rand
// Values specifies a function to generate a slice of
// arbitrary reflect.Values that are congruent with the
// arguments to the function being tested.
// If nil, the top-level Value function is used to generate them.
Values func([]reflect.Value, *rand.Rand)
}
type Generator
Generator может генерировать случайные значения собственного типа.
type Generator interface {
// Generate returns a random instance of the type on which it is a
// method using the size as a size hint.
Generate(rand *rand.Rand, size int) reflect.Value
} type SetupError
SetupError — результат ошибки в способе использования check, не связанной с проверяемыми функциями.
type SetupError string
func (SetupError) Error
func (s SetupError) Error() string
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/testing/quick/