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

O pacote aetest fornece uma API para executar o dev_appserver em testes.

Veja a seguir um exemplo de arquivo de teste:

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)
    }
}

A variável de ambiente APPENGINE_DEV_APPSERVER especifica o local do executável dev_appserver.py que será usado. Se ela não tiver sido definida, o PATH do sistema será consultado.

Variáveis

PrepareDevAppserver

var PrepareDevAppserver func() error

O PrepareDevAppserver é um gancho chamado antes de cada inicialização do dev_appserver.py, se configurado. Se aetest.NewContext for invocada a partir da ferramenta de teste goapp, esse gancho não será necessário.

Funções

func Login

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

A função Login faz com que a solicitação fornecida atue como se tivesse sido emitida pelo usuário específico.

func Logout

func Logout(req *http.Request)

A função Logout faz com que a solicitação fornecida atue como se tivesse sido emitida por um usuário desconectado.

func NewContext

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

A função NewContext inicia uma instância do servidor da API de desenvolvimento e retorna um contexto que direcionará todas as chamadas da API para esse servidor, bem como uma chamada de fechamento quando o contexto não for mais necessário.

Instância

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)
}

A função Instance representa uma instância em execução do servidor da API de desenvolvimento.

func NewInstance

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

A função NewInstance inicia uma instância em execução do api_server.py que pode ser usada para vários contextos de teste que delegam todas as chamadas da App Engine API a essa instância. Se o valor de "opts" for nulo, serão usados os valores padrão.

Opções

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
}

A função Options é usada para especificar opções ao criar uma instância.