Пакет 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, он будет использован. Примечание: для создания произвольных значений для структур, все поля должны быть экспортируемыми.
тип CheckEqualError
CheckEqualError – результат CheckEqual, если обнаружена ошибка.
type CheckEqualError struct {
CheckError
Out1 []any
Out2 []any
}
func (*CheckEqualError) Error
func (s *CheckEqualError) Error() string
тип CheckError
CheckError – результат Check, если обнаружена ошибка.
type CheckError struct {
Count int
In []any
}
func (*CheckError) Error
func (s *CheckError) Error() string
тип 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)
}
тип 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
} тип 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/