Provides a mock of Google Cloud Spanner using the official Google Cloud Spanner Emulator.
These mocks will automatically create a new emulator, wait for it to be available, then create a mock database. You will need to run your database migrations prior to performing your tests.
I recommend reusing the instance across multiple tests to reduce test run times.
This library is built on top of testcontainers.
Creating a mock instance for creating a customer connection.
func TestXXX(t *testing.T) {
	ctx := context.Background()
	mock, err := mockspanner.NewInstance(ctx, t)
	if err != nil {
		t.Fatalf("creating the instance: %v", err)
		return
	}
	// close the mock
	defer mock.Close(ctx)
	// ... my test code
}Creating a mock Spanner client for interacting with Spanner via the Go client.
func TestXXX(t *testing.T) {
	ctx := context.Background()
	mock, err := mockspanner.NewClient(ctx, t)
	if err != nil {
		t.Fatalf("creating the client: %v", err)
		return
	}
	// close the mock
	defer mock.Close(ctx)
    spannerClient := mock.Client()
    t.Run("MyTest1", func(t *testing.T) {
        // ... my test code
    })
    t.Run("MyTest2", func(t *testing.T) {
        // ... my test code
    })
}