JavaでHTMLをパースしたい
5分で調べたメモ書きシリーズ(続くかは知らない)
動機
人力テストでExcel方眼紙にスクショ貼り付けるの疲れた。 コントローラの単体テストをコード書いてやりたい。
-> 出力されるビューをパースして含まれる値とか調べたい。
JavaのHTMLパーサライブラリ
ググったらこの辺の記事がヒット。 今回はとりあえずJsoupを使ってみる。
Jsoup
// URLに接続してHTMLドキュメントを取得できる Document doc1 = Jsoup.connect("http://www.google.co.jp").get(); // あるいはStringやファイルをパースできる Document doc2 = Jsoup.parse("<!doctype HTML><html><body><div id=\"hoge\" class=\"fuga\">Hello!</div></body></html>"); // DOM操作が使える Element elm = doc2.getElementById("hoge"); // CSSセレクタも使える Elements elms = doc2.select("#hoge"); // テキストを取得したり System.out.println(elm.text()); // 属性やクラスを含むかを確認できたり System.out.println(elms.hasClass("fuga"));
ところでそもそもコントローラのテストって
普通はどうやって/どういう項目をテストするのが普通なんだろう。 テストコードの書き方を教えてくれる人が周りにいない。
一応技術的なことは上司も話を振ればノッてくれるけど、 皆さん忙しくてコーディング改善とかまで手が回ってないから…