rubyベストプラクティスchapter6.2
バグ報告からテストコードへの変換の方法
問題が発生したコードから問題の核を見つけ出す方法。
素直に写経。
でも、当然のごとく直近のPrawnを使うと事象は発生しません。
発生するべきバグが発生しないのはなんか気持ち悪いので、prawnのGitHubリポジトリからcloneして見ていくと、バグ発生前のコードが確認出来ました。
コミット番号は998a5c。チェックアウトするにはその1つ前の7e94d2を使えばいい。
ここがだめだったらしい。
init_bounding_box(block) do |_|
こう治してる
init_bounding_box(block, :hold_position => true) do |_|
おぉ見事に改ページされてる。ここの部分をだめなように変更すると見事に改ページされます。
実際のリポジトリの変更内容を見ていくと、再現のために追加されたと思われるテストコードも確認できます。
本の内容とは違う。(prawnってテストをrspecで書いているんだけど、この本だとなんでtestunitで書かれてるんだろ。。。。)
ここでは、再現させるためのコードは自己文書化しましょうってのがためになったなぁ。ここではpdfの生成ライブラリでの話だったので、出力するpdfに
ここは改ページしちゃだめ
とかそんなことを書いておくと便利だよーってこと。
たしかに「hoge」とかばっかじゃわからんし。
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
- 作者: Gregory Brown,高橋征義,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/03/26
- メディア: 大型本
- 購入: 9人 クリック: 307回
- この商品を含むブログ (43件) を見る