Spec-Zone.ru › Go

Package quick

  • import "testing/quick"
  • Обзор
  • Указатель

Обзор

Пакет quick реализует вспомогательные функции для тестирования методом чёрного ящика.

Пакет testing/quick заморожен: новые возможности в него не добавляются.

Указатель

  • func Check(f any, config *Config) error
  • func CheckEqual(f, g any, config *Config) error
  • func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool)
  • type CheckEqualError
  • func (s *CheckEqualError) Error() string
  • type CheckError
  • func (s *CheckError) Error() string
  • type Config
  • type Generator
  • type SetupError
  • func (s SetupError) Error() string

Файлы пакета

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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API