Bulknews::Subtech RSSフィード

2006/10/31 (火)

Test::Base でテストコードとデータの分離 00:11  Test::Base でテストコードとデータの分離 - Bulknews::Subtech を含むブックマーク はてなブックマーク -  Test::Base でテストコードとデータの分離 - Bulknews::Subtech

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 なんてのもできるかも。素敵だ。