Spec-Zone.ru › Go

Пакет iotest

  • import "testing/iotest"
  • Обзор
  • Указатель
  • Примеры

Обзор

Пакет iotest реализует Reader и Writer, полезные главным образом для тестирования.

Указатель

  • Переменные
  • func DataErrReader(r io.Reader) io.Reader
  • func ErrReader(err error) io.Reader
  • func HalfReader(r io.Reader) io.Reader
  • func NewReadLogger(prefix string, r io.Reader) io.Reader
  • func NewWriteLogger(prefix string, w io.Writer) io.Writer
  • func OneByteReader(r io.Reader) io.Reader
  • func TestReader(r io.Reader, content []byte) error
  • func TimeoutReader(r io.Reader) io.Reader
  • func TruncateWriter(w io.Writer, n int64) io.Writer

Примеры

ErrReader

Файлы пакета

logger.go reader.go writer.go

Переменные

ErrTimeout — фиктивная ошибка тайм-аута.

var ErrTimeout = errors.New("timeout")

func DataErrReader

func DataErrReader(r io.Reader) io.Reader

DataErrReader изменяет способ обработки ошибок Reader. Обычно Reader возвращает ошибку (как правило, EOF) при первом вызове Read после чтения последнего фрагмента данных. DataErrReader оборачивает Reader и изменяет его поведение так, что последняя ошибка возвращается вместе с последними данными, а не при первом вызове после получения последних данных.

func ErrReader 1.16

func ErrReader(err error) io.Reader

ErrReader возвращает io.Reader, который возвращает 0, err при каждом вызове Read.

Пример

Код:

// A reader that always returns a custom error.
r := iotest.ErrReader(errors.New("custom error"))
n, err := r.Read(nil)
fmt.Printf("n:   %d\nerr: %q\n", n, err)

Вывод:

n:   0
err: "custom error"

func HalfReader

func HalfReader(r io.Reader) io.Reader

HalfReader возвращает Reader, реализующий Read чтением из r вдвое меньшего количества запрошенных байтов.

func NewReadLogger

func NewReadLogger(prefix string, r io.Reader) io.Reader

NewReadLogger возвращает reader, который ведёт себя как r, но записывает (с помощью log.Printf) каждый вызов чтения в стандартный поток ошибок, выводя префикс и прочитанные данные в шестнадцатеричном формате.

func NewWriteLogger

func NewWriteLogger(prefix string, w io.Writer) io.Writer

NewWriteLogger возвращает writer, который ведёт себя как w, но записывает (с помощью log.Printf) каждый вызов записи в стандартный поток ошибок, выводя префикс и записанные данные в шестнадцатеричном формате.

func OneByteReader

func OneByteReader(r io.Reader) io.Reader

OneByteReader возвращает Reader, который реализует каждое непустое чтение, считывая из r один байт.

func TestReader 1.16

func TestReader(r io.Reader, content []byte) error

TestReader проверяет, что чтение из r возвращает ожидаемое содержимое файла. Он выполняет чтения разных размеров до EOF. Если r реализует io.ReaderAt или io.Seeker, TestReader также проверяет, что эти операции работают должным образом.

Если TestReader обнаруживает некорректное поведение, он возвращает ошибку с описанием проблемы. Текст ошибки может занимать несколько строк.

func TimeoutReader

func TimeoutReader(r io.Reader) io.Reader

TimeoutReader возвращает ErrTimeout при втором чтении, не вернувшем данных. Последующие вызовы чтения завершаются успешно.

func TruncateWriter

func TruncateWriter(w io.Writer, n int64) io.Writer

TruncateWriter возвращает Writer, который записывает данные в w, но молча прекращает запись после n байтов.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/testing/iotest/

Spec-Zone.ru

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