GAE/GO datastoreのローカル開発をしてみる。

appengine/datastoreをローカルの開発環境でテストしたいときはどうするのかなと思ったけれど、以下でOKであった。

command

goapp test ./src/<path>

source

import (
        "testing"
        "google.golang.org/appengine"
        "google.golang.org/appengine/aetest"
        "google.golang.org/appengine/datastore"
)

func TestPostCompany(t *testing.T) {

        inst, err := aetest.NewInstance(nil)
        if err != nil {
                t.Fatalf("Failed to create instance: %v", err)
        }
        defer inst.Close()

        req1, err := inst.NewRequest("GET", "/gophers", nil)
        if err != nil {
                t.Fatalf("Failed to create req1: %v", err)
        }
        c1 := appengine.NewContext(req1)

        var companyResponse = struct {
                Name, Address, Nick, Key string
        }{}

        var key *datastore.Key
        key, _ = datastore.DecodeKey(companyResponse.Key)

        var savedCompany = companyResponse

        datastore.Get(c1, key, &savedCompany)
        datastore.Delete(c1, key)
}

link

Local Unit Testing for Go  |  App Engine standard environment for Go  |  Google Cloud Platform

しかし、おそいな、、もっと早くできなものか、、