Documentation ¶
Overview ¶
Package spannertest contains test helpers for working with Cloud Spanner.
This package is EXPERIMENTAL, and is lacking several features. See the README.md file in this directory for more details.
In-memory fake ¶
This package has an in-memory fake implementation of spanner. To use it, create a Server, and then connect to it with no security:
srv, err := spannertest.NewServer("localhost:0") ... conn, err := grpc.DialContext(ctx, srv.Addr, grpc.WithTransportCredentials(insecure.NewCredentials())) ... client, err := spanner.NewClient(ctx, db, option.WithGRPCConn(conn)) ...
Alternatively, create a Server, then set the SPANNER_EMULATOR_HOST environment variable and use the regular spanner.NewClient:
srv, err := spannertest.NewServer("localhost:0") ... os.Setenv("SPANNER_EMULATOR_HOST", srv.Addr) client, err := spanner.NewClient(ctx, db) ...
The same server also supports database admin operations for use with the cloud.google.com/go/spanner/admin/database/apiv1 package. This only simulates the existence of a single database; its name is ignored.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Logger ¶
type Logger func(format string, args ...interface{})
Logger is something that can be used for logging. It is matched by log.Printf and testing.T.Logf.
type Server ¶
type Server struct { Addr string // contains filtered or unexported fields }
Server is an in-memory Cloud Spanner fake. It is unauthenticated, non-performant, and only a rough approximation.
func NewServer ¶
NewServer creates a new Server. The Server will be listening for gRPC connections, without TLS, on the provided TCP address. The resolved address is available in the Addr field.
func (*Server) SetLogger ¶
SetLogger sets a logger for the server. You can use a *testing.T as this argument to collate extra information from the execution of the server.