タグ

deferとstack-traceに関するruedapのブックマーク (1)

  • recoverでGoのテストのスタックトレースを省略する - flyhigh

    概要 Goでテストを書く際にt.Errorfなどで問題を表示することは多々ある。しかし、テストがいくつかあった際にダンプをズラズラと表示されたときは、一概でどのテストが失敗したのか追うのがめんどくさいと感じることもあるだろう。そういう時は、recoverとdeferをうまく使えばよいらしい。 具体的にはテストに以下ようなコードを足せば、うまく省略できる。 1 2 3 4 5 defer func() { if r := recover(); r != nil { t.Error("Too lazy to show stack trace. This test has failed. Fix it.") } }() 問題 たとえば、以下のようなテストを考える。例ではStackという型を定義したパッケージでも作ったこととしよう。 1 2 3 4 5 6 7 8 9 10 11 12 packa

  • 1