Erlang/OTP で開発されたパッケージ製品を前提にして書いているので注意して欲しい。

ビルドとテストは色々学んできたつもりだったのだけれど、やっと一段落できた一年だった。

以前はテストを二種類作っていた。単体テスト。もう一つはパッケージ化した後に実際にパケットを飛ばしてみるテスト。

これに違和感を感じて、単体テストに実際のパケットを飛ばすテストを組み込むべきと考え、非同期で動くクライアントを実装してテストを書くようにしてみた。

さらに非同期のクライアントのテストもリファレンス実装として作られているサーバの Docker イメージを作ってテスト時にそれを起動してテストするようにした。

クラスターのテストもパッケージングして join / leave するのも単体テストっぽく書けるようにしてもらった。

とにかく make test にまとめた。テストを書くコストが減ったという印象はある。実際は気軽に書けるようになったのでテストが増えた。

ネットワークサーバは実際にパケットを飛ばしてみないとわからないことがたくさんある。

今はまだループバックでしかないけれど、もっと複雑なテストも全て make test で実現できるようにしたい。もちろん、ローカルだろうがリモートだろうが関係なく。

テストは簡単に実行できるのが重要。

来年もシンプルなテストを心がけて色々模索していきたい。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store