実は77にも参加していたけどブログ書くの飛ばしてしまった...。なので2019年初のkzrb参加日記になります。
buffbuffのテストコードを書く
ひとまずgem化するところまではできて落ち着いたのですが、今後メンテナンスしていくときにはテストコードが必要だろうと思い、もくもく会で書いていました。しかし Buffbuff::Command
のspecを書いている途中で時間切れ。
主に以下の点でハマっていました。
- 処理の途中で
exit
する場合exit 0
でもexit 1
でも呼ばれるとrspecの実行自体が終了してしまう- これを検証する場合は、
expect { ... }.to raise_error(SystemExit)
すると良い
yes?
のstubどうすんの?- 実処理ではユーザーの入力(y|n)を待つ形になる
- 本体のテストではこうしている模様
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("y")
- https://github.com/erikhuda/thor/blob/3cf35551ea5fefb347f2ed16da203c7612ef6a9b/spec/shell/basic_spec.rb#L97
あまり記事も見当たらなかったので、ベースとしているライブラリのthorのテストコードから同じようなことやってないかなーと調べるのに時間を費やしていました。
懇親会
冬キャン、組織の文化と採用、勉強会やカンファレンスの会場問題、インシデントとどう向き合うか、その他オフレコトークについて話していました。珍しく日本酒を多く飲んでた記憶。
おわりに
来月はHashiCorpプロダクトのTerraform, Vaultについての勉強会です!ぜひご参加を。