日記

GitHub のマグカップ

届いたけどめちゃくちゃでかくて笑顔。スープボウルみたいな感じ。わかめスープ入れて飲んでる。

f:id:r7kamura:20170323135143p:plain
f:id:r7kamura:20170323135143p:plain

テストフレームワーク

https://github.com/petitest/petitest の開発を少し進めて、

  • Petitest.configuration.color
  • Petitest.configuration.color_scheme
  • Petitest.configuration.output

などの設定項目を増やしたり、TAP 形式でテスト結果を出力できる https://github.com/petitest/petitest-tap をつくったりしていた。このタイミングで設定項目を増やしたのは、petitest-tap が外部に出力を行うので、その出力先を統制したかったからという背景。

  • テスト時間の計測
  • テスト結果の出力

などを行う部分は、テスト実行中に発生する各種イベントを購読する Subscriber という単位でまとめていて、petitest-tap も Subscriber の 1 つとして実装している。他のテストフレームワークだと Reporter や Formatter として定義されるものも、Subscriber という Generic な名前の概念で実装していて、利用者視点で分かりづらくないか少し不安ではある。開発者視点では実態と名前が一致しているので分かりやすい。

現在は assertions (assert_equal とか expect とかをまとめてそう呼ぶことにする) のレパートリーを用意することに努めているけれど、この辺は本体に含まれず大体が Gem としてプラグインになりそう。正直なところ、覚えるのもだるいし assert { boolean } みたいな #assert ぐらいしか本体側では提供する予定がなく、https://github.com/petitest/petitest-power_assert とかあるし十分では?? と思っている。