我正在尋找一些想法或技巧來編寫測試代碼,使用EasyDBI session
來訪問mysql
中的數據。我不希望EasyDBI session
知道被測試,所以我希望找到一種方法來模擬DSN
或類似的東西。但是,我不清楚我該怎麼做。如何針對POE EasyDBI編寫測試?
有人曾經/解決過這個問題嗎?
我正在尋找一些想法或技巧來編寫測試代碼,使用EasyDBI session
來訪問mysql
中的數據。我不希望EasyDBI session
知道被測試,所以我希望找到一種方法來模擬DSN
或類似的東西。但是,我不清楚我該怎麼做。如何針對POE EasyDBI編寫測試?
有人曾經/解決過這個問題嗎?
也許Test::Database::Tutorial
/Test::Database
這是你需要的。或者你使用
創建你的__DATA__
的測試數據庫我最終使用了DBD:Mock,這很不錯。當我設置我的easy dbi組件時,我使用了DBD:Mock:作爲dsn。然後在我通過我想要返回的結果集的選項中。
my @result_set = (list of stuff);
my $eDBI = POE::Component::EasyDBI->spawn(
alias => 'eDBI',
dsn => "DBI:Mock:",
username => "",
password => "",
options => {
AutoCommit => 0,
mock_add_resultset => \@result_set,
},
no_connect_failures => 1,
reconnect_wait => 2,
max_retries => 5,
connect_error => [ $alias, "dbi_failure", 5 ],
connected => [ $alias, "dbi_connected" ],
);