2006/10/31 (火)
■ Test::Base でテストコードとデータの分離

Test::Base driven Development - Bulknews::Subtech - subtech で Test::Base でテストコードとデータの分離を! という話をかいたけど、実際 Test::Base にはファイル自体を分離する方法も用意されていた。
selector.t
#!/usr/bin/perl use strict; use warnings; use HTML::Selector::XPath 'selector_to_xpath'; use Test::Base; filters { selector => 'selector_to_xpath', }; spec_file('selector.tb'); run_compare;
spec_file('selector.tb') でテストデータを書き込むファイルを指定。selector.tb は以下のようになる。
=== --- selector: * --- xpath: //* === --- selector: E --- xpath: //E === --- selector: E F --- xpath: //E//F === --- selector: E > F --- xpath: //E/F
てな具合。
spec_string($test_data) というメソッドも用意されているので、データベースにテストデータを格納して DBI で引っ張ってもいいし、Excel でテスト仕様書かいて Spreadsheet::ParseExcel なんてのもできるかも。素敵だ。
コメント