Пакет iotest
Обзор
Пакет iotest реализует Reader и Writer, полезные главным образом для тестирования.
Указатель
Примеры
Файлы пакета
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/