Go学習日誌 #2022/06/17

生活記録アプリ

実施事項

下記を実施。
・テスト実施事項の整理
・単体テスト方法の調査
・システムテスト方法の調査

調査は昨日終わったんじゃないんかいと思うが、調べていくとRailsのspecみたいに簡単にテストが書けるわけではなく、テストに適したソースコードになっていないとダメそう。
Railsでは、テストDBの作成だったり、システムテストでブラウザを準備するだったりはほぼ勝手にやってくれていた。
Golangではどうもそうはなっていなく、必要なものは自分で書く様な思想の様である。

テスト実施事項の整理

Railsでは下記を参考にして
・単体テスト(モデルテスト(主にバリデーションチェック))
・システムテスト(ブラウザを通したテスト)
をやっていた。

コントローラ(Goのハンドラー)のテストはほとんどシステムテストと同じなのでやったりやらなかったりだった(はず・・・。
Goの場合、関数を呼び出して戻り値をチェックする程度なので、今回は無しでいいかなと思った。
Railsと違い、自前で全部用意しているから本来はやるべきではあると思う。
なので、
・単体テスト(モデルテスト(主にバリデーションチェック))
・システムテスト(ブラウザを通したテスト)
をやってみる。

単体テスト方法の調査

機能調査したやつをいじりながらやってみたが、扱いが難しい。
先にシステムテスト方法をいじりながら調べたら、Ginkgoがサンプルが多くあり良さそうだった。

使い方、書き方もrspecと似ていて良さそう。

で、上記を参考に環境構築を実施したところ、コマンドが通らない・・・。

$ ginkgo bootstrap
zsh: command not found: ginkgo 

みた感じパスが通っていない様だったので、下記解決策を実施。

ひとまず環境構築まで完了。

システムテスト方法の調査

上にも書いた通り、ブラウザ使ったテストをGinkgoでできるサンプルを見つけた。

seleniumの設定から丁寧に書いてあるのでこれを参考に実施しようと思う。

その他

次回、とりあえずテストができるようにコード見直しつつ、テスト作成します。

この記事が気に入ったらサポートをしてみませんか?