0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Go の testing つかってみた

Posted at

image.png

TDD

エアテスト駆動飲み会で Golang をはじめて触ったので記録のこします

環境

  • Replit を使うことで、実行環境を作る時間を省略し、ブラウザ越しに参加者同士でコードを共有します
  • Golang を普段さわってる人はゼロ

分かった事

  • xxx_test.go というファイル名にする
  • go test で実行できる
  • package main だと何か不都合らしい
  • 関数 Testxxx を用意する
  • t *testing.T をパラメータに受ける
  • アサーションは無い
  • 条件式を書き t.Errorf() を呼ぶ
  • ここまで分かったら FizzBuzz くらいなら TDD できる

最小構成サンプル

main.go
package a
import "strconv"

func a(i int) string {
  return strconv.Itoa(i)
}
main_test.go
package a
import "testing"

func TestA(t *testing.T) {
  actual := a(1)
  expected := "1"
  if actual != expected {
    t.Errorf("1のとき文字列1になる")
  }
}

そのうち調べること

  • なぜ package main はダメなんだろう
  • アサーション無しの理由が気に入ったので他言語でも似たようなことできるかな
    • python の unittest で pandas.DataFrame 扱えないみたいなこと
    • assert_frame_equal があるのは知ってるけど、じゃあほかの任意のオブジェクトはどうよ?みたいな
    • java なら Object の equals をオーバーライドしとけばいいじゃん、みたいな事なのかな?

おしまい

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?