You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Mocking your SQL database in Go tests has never been easier. The copyist library automatically records low-level SQL calls made during your tests. It then generates recording files that can be used to play back those calls without connecting to the real SQL database. Run your tests again. This time, they'll run much faster, because now they do not require a database connection. Best of all, your t
golangでテストのためだけにinterfaceを書くのが死ぬほど嫌だったので編み出した技を紹介します。 TL;DR テスト(=mock)のためだけにinterfaceは切りたくない 型エイリアスとビルドタグを組み合わせるとinterfaceがなくてもモックが作れる この手法に必要なモックを自動生成するプログラムを作った interfaceは本当に必要なシーンで使うべき Background 現在モックを使った単体テストは一般的です。 Javaでの例を挙げると、モックしたいコンポーネントについて予めinterfaceを定義しておき、モックではそのインターフェースを実装するのが定石です。 しかしgolangのinterfaceはJavaなどのそれとは若干性質が異なるため、テスト=モックのためだけにinterfaceを書くのはオーバーワーク気味です。 そうテストのためだけにinterface
Moq is an Interface mocking tool for go generate — github.com/matryer/moqIn my recent talk about Idiomatic Go Tricks I talked about a testing technique that David Hernandez showed me where you can test code that has dependencies (described by an interface) while keeping the mock code inside the test it belongs to. You write a struct full of function fields that mirror the interface, and matching m
いい記事に感化されて僕も何か書きたくなった。 Golangにおけるinterfaceをつかったテスト技法 | SOTA リスペクト: Big Sky :: golang で終了を確認するテストの書き方 GolangでAPI Clientを実装する | SOTA Big Sky :: GolangでAPI Clientを実装する、の続き 今週のやつではなく先週のです.今週のは特に知見がなかった…grpc-goとか使えたらクライアント勝手に生成されるしいいよねgrpc流行ると便利そう(感想) くらい Golangにおけるinterfaceをつかったテスト技法 | SOTA めっちゃいいなーと思ったんですが,テスト用 の mock を気軽に作るテクニックはあまり詳しく紹介されてなかったのでそのあたりの1つのテクニックを書きたい. 前提 僕もテストフレームワークや外部ツールは全く使わない.標準のt
This is a quick tutorial on how to test code using the GoMock mocking library and the standard library testing package testing . GoMock is a mock framework for Go. It enjoys a somewhat official status as part of the github.com/golang organization, integrates well with the built-in testing package, and provides a flexible expectation API. The code snippets referenced in this post are available on
OverviewWe all use a lot of packages when constructing our applications, both internally developed and third party packages. This blog post will show how you can easily mock these packages using mockery and stretchr/testify/mock. Let’s dive into it; An exampleWhen writing unit tests for our code we might find the external packages problematic. Consider this case: import "github.com/mediocregopher/
モンキーパッチというのは,オリジナルのソースコードを変更せずに実行時にコードを拡張したり変更したりする手法のことです.動的言語で見かけるようなモンキーパッチを golang でもやってのけることができます(って,そういうライブラリを作っちゃった人がいます! 手法については,ライブラリの作者による詳説をご覧ください. Monkey Patching in Go ざっくり言うと,メソッドの開始アドレスをすげ替えて他のメソッド呼び出すようにするという感じのものです. なので, セキュリティ厳しいOSでは動かない. スレッドセーフじゃないし,そもそも何もセーフじゃない. ということにご注意ください. 動かなくても文句は言わない.ただし,時々動作がおかしくなるようなら go test -gcflags=-l のようにフラグをつけてみるといいかもしれません. かなり黒魔術ですが,テストでどうしてもモッ
今のプロジェクトでAWS(S3)使ってて単体テストでも依存してたので、S3クライアントをモックにする方法を調べた。ソースはこちら。 通常はtype S3 structを使うがtype S3API interfaceというインタフェースが用意されているのでテスト時はこのインタフェースを実装したモックにすげ替える。 モックツール "gomock" あまりスターがついてないけど割りと古くからあってシンプルで使いやすかったので https://github.com/golang/mockを使ってみる。 インストール $ go get github.com/golang/mock/gomock $ go get github.com/golang/mock/mockgen $ go get github.com/aws/aws-sdk-go // mock target モック作成 $ mockge
I've investegated a way to mock HTTP request and response when writing a code to access to a HTTP API with http.Client. Finally, I found that I can do it by just implementing RoundTrip method of http.RoundTripper. Here is an example of mocking and proxying HTTP request and response. Running with go run main.go -mock mock, you can get mocked result and with go run main.go -mock proxy, you can get p
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く