test

package
v1.0.0-rc.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2020 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package test contains utility methods for testing.

Index

Constants

View Source
const TypeURLPrefix = "testm3db.io/"

TypeURLPrefix is a type URL prefix for storing in protobuf Any messages.

Variables

View Source
var IdentTransformer = cmp.Transformer("",
	func(id ident.ID) ident.BytesID { return ident.BytesID(id.Bytes()) })

IdentTransformer transforms any ident.ID into ident.BytesID to make it easier for comparison.

Functions

func ByteSlicesBackedBySameData

func ByteSlicesBackedBySameData(a, b []byte) bool

ByteSlicesBackedBySameData returns a bool indicating if the raw backing bytes under the []byte slice point to the same memory.

func CmpMatcher added in v0.8.2

func CmpMatcher(x interface{}, opts ...cmp.Option) gomock.Matcher

CmpMatcher returns a new matcher backed by go-cmp/cmp.Equal.

func ConvertToExtendedOptions added in v0.15.17

func ConvertToExtendedOptions(msg proto.Message) (namespace.ExtendedOptions, error)

ConvertToExtendedOptions converts protobuf message to ExtendedOptions.

func Diff

func Diff(expected, actual string) string

Diff is a helper method to print a terminal pretty diff of two strings for test output purposes.

func MustPrettyJSONArray added in v1.0.0

func MustPrettyJSONArray(t *testing.T, value xjson.Array) string

MustPrettyJSONArray returns an indented JSON string of the object.

func MustPrettyJSONMap added in v0.15.0

func MustPrettyJSONMap(t *testing.T, value xjson.Map) string

MustPrettyJSONMap returns an indented JSON string of the object.

func MustPrettyJSONString added in v0.15.0

func MustPrettyJSONString(t *testing.T, str string) string

MustPrettyJSONString returns an indented version of the JSON.

func NewController added in v0.15.0

func NewController(t require.TestingT) *gomock.Controller

NewController provides a gomock.Controller wrapped with a xtest.Reporter, which gives more useful error modes on unexpected mock calls. See xtest.Reporter for more context.

func NewCorruptingFile added in v0.4.8

func NewCorruptingFile(
	fd xos.File,
	corruptionProbability float64,
	seed int64,
) xos.File

NewCorruptingFile creates a new corrupting file.

func NewExtendedOptionsJson added in v0.15.17

func NewExtendedOptionsJson(value string) xjson.Map

NewExtendedOptionsJson returns a json Map with ExtendedOptions as protobuf Any.

func NewExtendedOptionsProto added in v0.15.17

func NewExtendedOptionsProto(value string) (*protobuftypes.Any, error)

NewExtendedOptionsProto construct a new protobuf Any message with ExtendedOptions.

func NewLogger added in v0.8.4

func NewLogger(t *testing.T) *zap.Logger

NewLogger returns a new test logger.

func NewProtobufAny added in v0.15.17

func NewProtobufAny(msg proto.Message) (*protobuftypes.Any, error)

NewProtobufAny converts a typed protobuf message into protobuf Any type.

Types

type ExtendedOptions added in v0.15.17

type ExtendedOptions struct {
	// contains filtered or unexported fields
}

ExtendedOptions is a struct for testing namespace ExtendedOptions.

func (*ExtendedOptions) ToProto added in v0.15.17

func (o *ExtendedOptions) ToProto() (proto.Message, string)

func (*ExtendedOptions) Validate added in v0.15.17

func (o *ExtendedOptions) Validate() error

type Reporter added in v0.8.2

type Reporter struct {
	T require.TestingT
}

Reporter wraps a *testing.T, and provides a more useful failure mode when interacting with gomock.Controller.

For example, consider:

func TestMyThing(t *testing.T) {
  mockCtrl := gomock.NewController(t)
  defer mockCtrl.Finish()
  mockObj := something.NewMockMyInterface(mockCtrl)
  go func() {
    mockObj.SomeMethod(4, "blah")
  }
}

It hangs without any indication that it's missing an EXPECT() on `mockObj`. Providing the Reporter to the gomock.Controller ctor avoids this, and terminates with useful feedback. i.e.

func TestMyThing(t *testing.T) {
  mockCtrl := gomock.NewController(test.Reporter{t})
  defer mockCtrl.Finish()
  mockObj := something.NewMockMyInterface(mockCtrl)
  go func() {
    mockObj.SomeMethod(4, "blah") // crashes the test now
  }
}

func (Reporter) Errorf added in v0.8.2

func (r Reporter) Errorf(format string, args ...interface{})

Errorf is equivalent testing.T.Errorf.

func (Reporter) Fatalf added in v0.8.2

func (r Reporter) Fatalf(format string, args ...interface{})

Fatalf crashes the program with a panic to allow users to diagnose missing expects.

Directories

Path Synopsis
Package testmarshal provides some assertions around marshalling/unmarshalling (serialization/deserialization) behavior for types.
Package testmarshal provides some assertions around marshalling/unmarshalling (serialization/deserialization) behavior for types.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL