Package testutil contains helper functions for writing tests.



    This section is empty.


    This section is empty.


    func CanReplay

    func CanReplay(replayFilename string) bool

      CanReplay reports whether an integration test can be run in replay mode. The replay file must exist, and the GCLOUD_TESTS_GOLANG_ENABLE_REPLAY environment variable must be non-empty.

      func Diff

      func Diff(x, y interface{}, opts ...cmp.Option) string

        Diff reports the differences between two values. Diff(x, y) == "" iff Equal(x, y).

        func Equal

        func Equal(x, y interface{}, opts ...cmp.Option) bool

          Equal tests two values for equality.

          func JWTConfig

          func JWTConfig() (*jwt.Config, error)

            JWTConfig reads the JSON private key file whose name is in the default environment variable, and returns the jwt.Config it contains. It ignores scopes. If the environment variable is empty, it returns (nil, nil).

            func NewRand

            func NewRand(t time.Time) *rand.Rand

              NewRand creates a new *rand.Rand seeded with t. The return value is safe for use with multiple goroutines.

              func PageBounds

              func PageBounds(pageSize int, pageToken string, length int) (from, to int, nextPageToken string, err error)

                PageBounds converts an incoming page size and token from an RPC request into slice bounds and the outgoing next-page token.

                PageBounds assumes that the complete, unpaginated list of items exists as a single slice. In addition to the page size and token, PageBounds needs the length of that slice.

                PageBounds's first two return values should be used to construct a sub-slice of the complete, unpaginated slice. E.g. if the complete slice is s, then s[from:to] is the desired page. Its third return value should be set as the NextPageToken field of the RPC response.

                func ProjID

                func ProjID() string

                  ProjID returns the project ID to use in integration tests, or the empty string if none is configured.

                  func TokenSource

                  func TokenSource(ctx context.Context, scopes ...string) oauth2.TokenSource

                    TokenSource returns the OAuth2 token source to use in integration tests, or nil if none is configured. It uses the standard environment variable for tests in this repo.

                    func TokenSourceEnv

                    func TokenSourceEnv(ctx context.Context, envVar string, scopes ...string) oauth2.TokenSource

                      TokenSourceEnv returns the OAuth2 token source to use in integration tests. or nil if none is configured. It tries to get credentials from the filename in the environment variable envVar. If the environment variable is unset, TokenSourceEnv will try to find 'Application Default Credentials'. Else, TokenSourceEnv will return nil. TokenSourceEnv will log.Fatal if the token source is specified but missing or invalid.


                      type Server

                      type Server struct {
                      	Addr string
                      	Port int
                      	Gsrv *grpc.Server
                      	// contains filtered or unexported fields

                        A Server is an in-process gRPC server, listening on a system-chosen port on the local loopback interface. Servers are for testing only and are not intended to be used in production code.

                        To create a server, make a new Server, register your handlers, then call Start:

                        srv, err := NewServer()
                        mypb.RegisterMyServiceServer(srv.Gsrv, &myHandler)

                        Clients should connect to the server with no security:

                        conn, err := grpc.Dial(srv.Addr, grpc.WithInsecure())

                        func NewServer

                        func NewServer(opts ...grpc.ServerOption) (*Server, error)

                          NewServer creates a new Server. The Server will be listening for gRPC connections at the address named by the Addr field, without TLS.

                          func NewServerWithPort

                          func NewServerWithPort(port int, opts ...grpc.ServerOption) (*Server, error)

                            NewServerWithPort creates a new Server at a specific port. The Server will be listening for gRPC connections at the address named by the Addr field, without TLS.

                            func (*Server) Close

                            func (s *Server) Close()

                              Close shuts down the server.

                              func (*Server) Start

                              func (s *Server) Start()

                                Start causes the server to start accepting incoming connections. Call Start after registering handlers.

                                type TestExporter

                                type TestExporter struct {
                                	Spans []*trace.SpanData
                                	Stats chan *view.Data

                                  TestExporter is a test utility exporter. It should be created with NewtestExporter.

                                  func NewTestExporter

                                  func NewTestExporter() *TestExporter

                                    NewTestExporter creates a TestExporter and registers it with OpenCensus.

                                    func (*TestExporter) ExportSpan

                                    func (te *TestExporter) ExportSpan(s *trace.SpanData)

                                      ExportSpan exports a span.

                                      func (*TestExporter) ExportView

                                      func (te *TestExporter) ExportView(vd *view.Data)

                                        ExportView exports a view.

                                        func (*TestExporter) Unregister

                                        func (te *TestExporter) Unregister()

                                          Unregister unregisters the exporter from OpenCensus.