Skip to main content

Go + testing

方針

  • Go で標準で入っている testing パッケージを使う

前提

bash
brew install go

プロジェクト作成

bash
mkdir -p ~/workdir/SampleGo
cd ~/workdir/SampleGo
go mod init samplego
# -> go.mod が作成される
code .

最小のコード

main.go
package main

func add(a int, b int) int {
return a + b
}
add_test.go
package main

import "testing"

func TestAddTwoAndThree(t *testing.T) {
if add(2, 3) != 5 {
t.Fatalf("expected 5")
}
}

決まりごと

  • ファイル名のルール : *_test.go
  • 関数名とシグニチャのルール : TestXxx(t *testing.T)
  • テストの通らない場合に t.Fatalf("..") で失敗させる。 assert みたいなもん

実行

bash
go test

表示例

成功時

  • OK の場合のテストケース名は出ない
  • TODO: verbose オプションなどある?
txt
PASS
ok samplego 0.184s

失敗時

txt
--- FAIL: TestAddTwoAndThree (0.00s)
add_test.go:7: expected 5
FAIL
exit status 1
FAIL samplego 0.181s

以下広告