golang
TL; DR t.Run でネストしたテストを実行する時、Runに渡す関数はトップレベルのテストが実行されているのと別のgoroutineで実行されているのでParameterized Testなんかをやってる場合、変数のスコープに注意しましょう。
Goのテストでヘルパーメソッドを作って共通のアサーションを定義することがあるかと思います。 package test import "testing" func Add(x, y int) int { return x + y } func TestAdd(t *testing.T) { AssertEquals(t, 2, Add(1, 1)) AssertEquals(t, 3, Ad…
github.com モチベーションとしては、Datadog LogsのWebコンソールはメッセージの全文が長いと全部表示されなかったり普通のtailと違って時間の降順に並んだりで微妙に見づらかったりするので、CLIでtail -fコマンド感覚で見れて雑にgrepとかしたいと思って…
defer はそれが定義された関数が終わったタイミングで実行されるので、forループでdeferを定義してしまうと、forループが終わって所属する関数が終わったタイミングで一斉に実行される。 package main import "fmt" func main() { for i := 1; i <= 5; i++ {…
(2021.10 更新) まあここに書いてることそのままなのですが、日本語のメモとして。 go install でダウンロード用のバイナリを取ってきて、downloadコマンドを打つ $ go install golang.org/dl/go1.17.1@latest $ go1.17.1 download Downloaded 0.0% ( 16384 …
golangをちょっといじってます。 今まで使ったことがある言語(Java, Ruby, JavaScriptなど)には無かったポインタについて 色々実行してみた結果を張っておきます。 考察 あるオブジェクトを変数に入れるとコピー的なものが作成され、元の変数には影響を与え…