Perl入学式 #8補講に行ってきた
感想的なエントリー。第8回目の内容は
- Test::More
- Mojoliciousのさわり
でした
Test::More の話
基礎的なお話し。use Test::More して ok(); でテストしたいことを書いていく。
あらかじめテストファイルが用意されていて、そのテストをパスするように実装していく方式。あんまり質問とか挙がらなかったので、できる人は黙々と実装してるし、できない人はそもそもチンプンカンプンという雰囲気でした。
事前に資料がアップされていたので、小崎は事前に解いた。ひたすら質問ばっかりしてた
https://github.com/koko-u/perl-entrance-2012-08/tree/preparation
- テストスクリプトで関数呼び出しに &sum などしているが、& は付けた方がいいのか?
→ 付けなくて OK
- テストの冒頭で require_ok(); のテストをしているが、テストに失敗した場合は後続のテストに意味がないからスキップしたい
→ あまり気にしたことないみたい。思い付いたから聞いただけで、多分わたしも気にしない
- テストが ok() 一辺倒なのが気になる、cmp_ok などのほうがよいのでは?
→ お好きなように。テストに失敗した時の出力が全然違うので小崎は cmp_ok などを推したい
- ok() の逆に「偽であること」をテストしたい場合に ng() なるメソッドはないのか?
→ ない。ok(!...)と書いて。
- perl でテストファイルを直接実行するのと、prove を使う時の違いは?
→ prove はまとめてテストできる程度。
- ファイル名を指定するテストで実際にファイルを作成してテストしているが、いい感じにテストファイルだけで完結する方法はないか?
→ いい方法はないぽい。__DATA__ セクションを使うとファイルハンドルを引数にとるような関数のテストはできる。Data::Section::Simple のようなモジュールで __DATA__ セクションを複数に分割して使ったり。
これまでの講義内容が小さなスクリプトを書く程度だったので、突然テスト書こう、と言われてもピンとこない部分もあったかもしれない。もう少し大きめのスクリプトを書いて、長すぎるからモジュールに分割して、モジュールに対してテストを書くのが普通なのかな。
Mojolicious
とりあえずインストールして Hello world レベルができるところまで。
突然「こう書けばできます」というのも辛いかも、と思いつつ。どうしたらいいんでしょうねぇ。
全然ウェブアプリケーションを作ったことがない人もいるかもしれんので、もうちょっと概要的な話があった方がいいのかもとは思う。
まとめとか書くのわすれてた
課題がgithubにあるのは良い。folk して問いた内容をアップできるしね。誰も見ないけど。