El paquete Aetest

import "google.golang.org/appengine/aetest"

Introducción

El paquete de AEtest proporciona una API para ejecutar dev_appserver para su uso 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.

Índice

Variables
func Login(u *user.User, req *http.Request)
func Logout(req *http.Request)
func NewContext() (context.Context, func(), error)
type Instance
    func NewInstance(opts *Options) (Instance, error)
type Options

Variables

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.

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.

type Instance

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

type Options

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
}

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

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Go