Closed11

詳解Go言語Webアプリケーション開発メモ

axpensiveaxpensive

Linuxから出るSIGTERMというシグナルを検知してグレースフルシャットダウンをする。
os/signalパッケージのsignal.NotifyContextで実現可能

axpensiveaxpensive

testingのCleanupはテスト、サブテストが終わったあとに呼び出す処理を登録する。
じゃあdeferでいいじゃんと思ったら、Goの仕様でサブテスト実行前にdeferが実行されるらしい。
https://qiita.com/wifecooky/items/cf8ae640eb526e7413eb
https://zenn.dev/flying_hato_bus/articles/ea7382be6650ded36ac4
なのでサブテストを動かすときにdeferしたい処理があるなら代わりにCleanupを使おうということになる。

axpensiveaxpensive

ゴールデンテスト

過去に実行したテストの結果をファイルに保存(= Golden Files)し、再度実行するときはそのファイルと同じ結果が返ってきているかどうかをチェックするテスト手法のことを Golden Test と呼びます1。

https://swet.dena.com/entry/2020/03/16/173000

Goではテストに使用する入力や期待値を*.json.goldenで保存する。

axpensiveaxpensive

インターフェースの実装チェックがすぐに理解できなかった
https://qiita.com/kskumgk63/items/423df2e5245da4b16c25

var (
	// インターフェイスが期待通りに宣言されているか確認
	_ Beginner = (*sqlx.DB)(nil)
	_ Preparer = (*sqlx.DB)(nil)
	_ Queryer  = (*sqlx.DB)(nil)
	_ Execer   = (*sqlx.DB)(nil)
	_ Execer   = (*sqlx.Tx)(nil)
)
このスクラップは2023/03/31にクローズされました