aetest パッケージ

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

はじめに

パッケージ aetest には、テストで使用する dev_appserver を実行するための API が用意されています。

テストファイルの例:

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

環境変数 APPENGINE_DEV_APPSERVER では、使用する実行可能ファイル dev_appserver.py の場所を指定します。設定しなかった場合は、システム PATH が参照されます。

索引

変数
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

変数

var PrepareDevAppserver func() error

PrepareDevAppserver は、設定すると、dev_appserver.py を起動するたびにその起動前に呼び出されるフックです。aetest.NewContext を goapp テストツールから呼び出す場合、このフックは不要です。

func Login

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

Login で指定したリクエストは、特定のユーザーが発行したものとして扱われます。

func Logout

func Logout(req *http.Request)

Logout で指定したリクエストは、ログアウト済みのユーザーが発行したものとして扱われます。

func NewContext

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

NewContext によって、開発 API サーバーのインスタンスが起動され、コンテキスト(これにより、すべての API 呼び出しがそのサーバーにルーティングされる)とクロージャ(このコンテキストが必要なくなった場合に呼び出す必要がある)が返されます。

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 は、開発 API サーバーの実行中のインスタンスを表します。

func NewInstance

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

NewInstance を使用すると、api_server.py のインスタンスが起動および実行されます。このインスタンスは複数のテスト コンテキストに使用でき、すべての App Engine API 呼び出しを委任できます。opts が nil の場合、デフォルト値が使用されます。

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 は、インスタンスの作成時にオプションを指定するために使用します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine スタンダード環境