Paquete google.golang.org/appengine/aetest (v1.6.8)

El paquete de aetest proporciona una API para ejecutar dev_appserver a fin de usarlo en pruebas.

Archivo de prueba de ejemplo:

package foo_test

import (
    "testing"

    "google.golang.org/appengine/memcache"
    "google.golang.org/appengine/aetest"
)

func TestFoo(t *testing.T) {
    ctx, done, err := aetest.NewContext()
    if err != nil {
        t.Fatal(err)
    }
    defer done()

    it := &memcache.Item{
        Key:   "some-key",
        Value: []byte("some-value"),
    }
    err = memcache.Set(ctx, it)
    if err != nil {
        t.Fatalf("Set err: %v", err)
    }
    it, err = memcache.Get(ctx, "some-key")
    if err != nil {
        t.Fatalf("Get err: %v; want no error", err)
    }
    if g, w := string(it.Value), "some-value" ; g != w {
        t.Errorf("retrieved Item.Value = %q, want %q", g, w)
    }
}

La variable de entorno APPENGINE_DEV_APPSERVER especifica la ubicación del ejecutable dev_appserver.py executable que se usará. Si no está configurado, se consulta la RUTA del sistema.

Variables

PrepareDevAppserver

var PrepareDevAppserver func() error

PrepareDevAppserver es un enlace que, si se configura, se llamará antes de que se inicie dev_appserver.py, cada vez que se inicie. Si aetest.NewContext se invoca desde la herramienta de prueba goapp, este enlace no es necesario.

Funciones

func Login

func Login(u *user.User, req *http.Request)

Login hace que la solicitud proporcionada se comporte como si fuese emitida por el usuario determinado.

func Logout

func Logout(req *http.Request)

Logout hace que la solicitud proporcionada se comporte como si fuese emitida por un usuario desconectado.

func NewContext

func NewContext() (context.Context, func(), error)

NewContext inicia una instancia del servidor de la API de desarrollo y muestra un contexto que enrutará todas las llamadas a la API a ese servidor, además de un cierre que se debe llamar cuando ya no se requiera el contexto.

Instancia

type Instance interface {
	// Close kills the child api_server.py process, releasing its resources.
	io.Closer
	// NewRequest returns an *http.Request associated with this instance.
	NewRequest(method, urlStr string, body io.Reader) (*http.Request, error)
}

Instance representa una instancia en ejecución del servidor de la API de desarrollo.

func NewInstance

func NewInstance(opts *Options) (Instance, error)

NewInstance inicia una instancia en ejecución de api_server.py que puede usarse para varios contextos de prueba que delegan todas las llamadas a la API de App Engine a esa instancia. Si opts es nulo, se usan los valores predeterminados

Opciones

type Options struct {
	// AppID specifies the App ID to use during tests.
	// By default, "testapp".
	AppID string
	// StronglyConsistentDatastore is whether the local datastore should be
	// strongly consistent. This will diverge from production behaviour.
	StronglyConsistentDatastore bool
	// SupportDatastoreEmulator is whether use Cloud Datastore Emulator or
	// use old SQLite based Datastore backend or use default settings.
	SupportDatastoreEmulator *bool
	// SuppressDevAppServerLog is whether the dev_appserver running in tests
	// should output logs.
	SuppressDevAppServerLog bool
	// StartupTimeout is a duration to wait for instance startup.
	// By default, 15 seconds.
	StartupTimeout time.Duration
}

Options se usa para especificar opciones cuando se crea una instancia.