Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go言語でテストしてみたお話/Test in Golang

Avatar for sayaka713y sayaka713y
December 14, 2018

Go言語でテストしてみたお話/Test in Golang

第10回Tech Doでの発表資料です。

Avatar for sayaka713y

sayaka713y

December 14, 2018
Tweet

Other Decks in Technology

Transcript

  1. ◆ func (t *T) Log(args ...interface{}) 引数の文字列をエラーログに記録する ◆ func (t

    *T) Logf(format string, args ...interface{}) フォーマットを指定して、引数の文字列をエラーログに記録する 第一引数 :フォーマット 第二引数~:文字列 → テストが成功したのか失敗したのかは管理していない 10 テストコードを書いてみよう
  2. ◆ func (t *T) Fail() エラーがあったことを記録する 以降の処理は継続する ◆ func (t

    *T) FailNow() エラーがあったことを記録する 以降の処理は終了する 11 テストコードを書いてみよう
  3. ◆ func (t *T) Error(args ...interface{}) エラーがあったことと引数の文字列をエラーログに記録する 以降の処理は継続する ◆ func

    (t *T) Fatal(args ...interface{}) エラーがあったことと引数の文字列をエラーログに記録する 以降の処理は終了する 12 テストコードを書いてみよう →Log()とFail()を呼び出すことと同じ →Log()とFailNow()を呼び出すことと同じ
  4. 14 関数 結果 処理継続 ログ出力 フォーマット Log - 〇 〇

    × Logf - 〇 〇 〇 Fail エラー 〇 × - Error エラー 〇 〇 × Errof エラー 〇 〇 〇 FailNow エラー × × - Fatal エラー × 〇 × Fatalf エラー × 〇 〇 テストコードを書いてみよう 【参考】
  5. • go test :テスト実行 • go test -v :テスト実行(詳細な実行結果出力) •

    go test -cover :テスト実行+コードカバレッジ • go test -cover -v :テスト実行+コードカバレッジ (詳細な実行結果出力) 15 テスト実行コマンド
  6. > go test -cover > go test -cover -v 17

    テスト実行コマンド テスト成功
  7. > go test > go test -v 19 テスト実行コマンド テスト失敗

    → 「-v」の有無に関係なく、Logの内容も出力される
  8. パッケージ単位 go test ./hello • 指定したパッケージにある全ての_test.goを実行 • 実行時:ルートディレクトリに移動すること テスト関数単位 go

    test -run TestHello • 指定したテスト関数を実行 • 実行時:テストコードのあるディレクトリに移動すること 20 テスト実行コマンド
  9. 前処理・後処理 • func TestMain(m *testing.M) • m.Run()を書くことでテスト関数が実行される ┗ m.Run()の数 =

    テスト関数が実行される回数 • m.Run()を書かないとテスト関数は実行されない 27 少し応用のテスト
  10. Selenium WebDriver • ブラウザでWebアプリケーションをテストするツール • 環境変数でパスを通すこと agouti • WebDriverクライアント •

    テストフレームワーク 32 ブラウザテスト Windows用のコマンド(chocolatey) Mac用のコマンド(Homebrew)
  11. 37 参考文献 • 「testing - The Go Programming Language」 https://golang.org/pkg/testing/

    • 「agouti - GoDoc」 https://godoc.org/github.com/sclevine/agouti • 「Agouti」 https://agouti.org/ • 第2回Goハンズオン資料