![見出し画像](https://assets.st-note.com/production/uploads/images/70936893/rectangle_large_type_2_a34e785d87c209fa6cae39f6ca22df38.jpeg?width=1200)
Google Apps Scriptでユニットテストを書いてみる
ノーコード開発ツールのAppSheetでデータベースとしてGoogle Sheetを使っていればGoogle Apps Script(GAS)が利用できますので、ちょっと難しめの処理が必要になりAppSheetの機能だけでは実現が難しいとなった場合は、以下のようにSheetからApps Scriptを選択するだけでプログラムが書けるようになります。
![](https://assets.st-note.com/img/1643378248603-DgjmLuF84Z.png?width=1200)
AppSheetで作られたシステムを長く安定して保守運用していくためにはプログラムも保守しやすいものにしておいた方がいいので、ユニットテストを書いてみることにします。
今回はGAS用ユニットテストライブラリとしてGASUnitをインストールして使ってみます。
GASUnitのGithubからプロジェクトキーをコピーして、
![](https://assets.st-note.com/img/1643378812913-x37eTTPuaM.png?width=1200)
スクリプトエディタからライブラリを選択して、
![](https://assets.st-note.com/img/1643379061918-nTU0rOVtUF.png?width=1200)
先ほどのプロジェクトキーを入力して、GASUnitが表示されたら最新のバージョンを選択して保存をクリックします。
![](https://assets.st-note.com/img/1643379193744-UmHHjMc2AE.png?width=1200)
ライブラリをインポートしたらここをクリックして新しいUIのエディタに切り替えます。というのもこちらの方がログが見やすいからです。
![](https://assets.st-note.com/img/1643381418357-QlfpBcGRe1.png)
プログラムはこのような感じです。割り算をする関数が1個あります。
![](https://assets.st-note.com/img/1643380585099-yR0Vpdq1ZR.png?width=1200)
こちらは別のファイルに書いたテストコードです。4個のテストケースがありますので、試しに実行してみましょう。
![](https://assets.st-note.com/img/1643380565651-iR7qbKVycl.png?width=1200)
テストの実行はこの実行ボタンを押すだけです。
![](https://assets.st-note.com/img/1643381458748-sJLvmz4i4g.png)
このような感じの実行ログが表示されました。
1つ目の結果で"✗ should return NaN when divisor is 0 value is falsy."と表示されましたので、結果が期待値と違ったようです。
![](https://assets.st-note.com/img/1643380698948-PMFALDky8N.png?width=1200)
コードをこのような感じに直してみました。除数が0の場合は割る代わりに'NaN'の文字列を返します。
![](https://assets.st-note.com/img/1643380821517-f4Z2CP5Z0w.png?width=1200)
もう一度テストを実行したところ、今度はすべてうまくいったみたいです。
![](https://assets.st-note.com/img/1643380870058-pYn3xdR6ED.png?width=1200)
このような感じでGoogle Apps Scriptでも自動テストが書けますので、保守しやすいように関数をうまく設計して実装をしてみましょう。