testutil

package
v0.0.0-...-9b0dd16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2018 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package testutil はテストで使用するユーティリティ群です。

Index

Constants

View Source
const (
	// LogLevelDebug はデバッグレベルのログを識別します。
	LogLevelDebug = iota
	// LogLevelInfo は情報レベルのログを識別します。
	LogLevelInfo
	// LogLevelWarning は警告レベルのログを識別します。
	LogLevelWarning
	// LogLevelError はエラーレベルのログを識別します。
	LogLevelError
	// LogLevelCritical は致命レベルのログを識別します。
	LogLevelCritical
)

Variables

View Source
var (

	// ErrNotSupported は操作がサポートされていない場合に返るエラーです。
	ErrNotSupported = errors.New("Not supported in this environment")
)

Functions

func DatastoreClear

func DatastoreClear() error

DatastoreClear は Datastore を初期化します。

func DatastoreDump

func DatastoreDump(filename string, namespace string, kinds []string) error

DatastoreDump は Datastore をダンプします。

func DatastoreRestore

func DatastoreRestore(filename string, namespace string) error

DatastoreRestore は Datastore をダンプから復旧します。

func FlushGoonCache

func FlushGoonCache(ctx context.Context)

FlushGoonCache は goon のキャッシュをリセットします。 goon 以外のキャッシュもリセットされることに注意してください。

func GetAppengineContext

func GetAppengineContext() context.Context

GetAppengineContext はテスト用の新しい GAE コンテキストを取得します。 aetest.NewContext とほぼ同等ですが、インスタンスを再利用します。 また、そのため終了処理が必要ありません。

func GetAppengineContextFor

func GetAppengineContextFor(inst aetest.Instance) context.Context

GetAppengineContextFor は指定のインスタンスに対する新しい GAE コンテキストを取得します。

func GetAppengineInstance

func GetAppengineInstance() aetest.Instance

GetAppengineInstance はテスト用の GAE のインスタンスを返します。 aetest.NewInstance と同じですが、インスタンスの使い回しをするので高速です。 新規のインスタンスが必要な場合、事前に RefreshAppengineInstance を呼び出してください。

func NewInstance

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

NewInstance はテスト用に最適化したオプションで GAE のインスタンスを起動します。

func RefreshAppengineInstance

func RefreshAppengineInstance()

RefreshAppengineInstance は使用中の GAE インスタンスを破棄し、 次から新しいインスタンスを利用します。

func Setup

func Setup()

Setup はテスト共通の前準備を行います。 TestMain で呼び出してください。

func Teardown

func Teardown()

Teardown はテスト共通の後処理を行います。 TestMain で呼び出してください。 defer で呼び出す場合、 os.Exit と同じメソッド内だと ロックすることがあるため、TestMain を下請けメソッドなどに分離して 呼び出してください。

Types

type AppengineAPICallMock

type AppengineAPICallMock struct {
	// Count はモックを実行する回数を設定します。
	// 0 を設定すると永久に繰り返します。
	Count int

	// Service はモック化対象のサービスを設定します。
	// 設定しない場合、全サービスが対象になります。
	// 先頭一致でチェックするので、 datastore などを設定すれば
	// datastore_v3 なども対象になります。
	Service string

	// Method はモック化対象のメソッドを設定します。
	// 設定しない場合、全メソッドが対象になります。
	// 完全一致でチェックします。
	Method string

	// Error は API 呼び出しを error にする場合に設定します。
	Error error
}

AppengineAPICallMock は Appengine の API 呼び出しのモック化の方法を設定します。

type AppengineMock

type AppengineMock struct {
	// contains filtered or unexported fields
}

AppengineMock は Appengine の API のモック化の機能を 提供します。

func NewAppengineMock

func NewAppengineMock() *AppengineMock

NewAppengineMock は新しい AppengineMock を返します。

func (*AppengineMock) AddAPICallMock

func (m *AppengineMock) AddAPICallMock(mock AppengineAPICallMock)

AddAPICallMock は API 呼び出しのモック処理を追加します。

func (*AppengineMock) GetLogsEqualOrMore

func (m *AppengineMock) GetLogsEqualOrMore(level LogLevel) []string

GetLogsEqualOrMore はモック化したインスタンスで取得した、 指定レベルのログを返します。 Appengine SDK の内部実装に依存しているため、ログを取得できない場合もあります。 ログが何も取得できない場合は結果の判定を行わないでください。

func (*AppengineMock) GetLogsEqualTo

func (m *AppengineMock) GetLogsEqualTo(level LogLevel) []string

GetLogsEqualTo はモック化したインスタンスで取得した、 指定レベルのログを返します。 Appengine SDK の内部実装に依存しているため、ログを取得できない場合もあります。 ログが何も取得できない場合は結果の判定を行わないでください。

func (*AppengineMock) MockContext

func (m *AppengineMock) MockContext(ctx context.Context) context.Context

MockContext は Appengine の Context をモック化します。

func (*AppengineMock) MockInstance

func (m *AppengineMock) MockInstance(inst aetest.Instance) aetest.Instance

MockInstance は Appengine の Instance をモック化します。 テストの完了時に Close を呼び出してください。 モック元の Instance の Close は(必要であれば)別途呼び出す必要があります。 また、本処理は Appengine SDK の内部処理に依存しているため、 サポートされない合があります。 その場合、単に nil を返しますので、テストをスキップしてください。

type Instance

type Instance struct {
	APIURL *url.URL
	// contains filtered or unexported fields
}

Instance は aetest.Instance にポート番号キャプチャ用の情報を追加したものです。

func (*Instance) Close

func (i *Instance) Close() error

Close はインスタンスの停止処理を行います。

func (*Instance) NewRequest

func (i *Instance) NewRequest(method, urlStr string, body io.Reader) (*http.Request, error)

NewRequest はインスタンスへの新しいリクエストを作成します。

type LogLevel

type LogLevel int

LogLevel はログレベルです。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL