2013-04-16 36 views
2

我正在尋找一些想法或技巧來編寫測試代碼,使用EasyDBI session來訪問mysql中的數據。我不希望EasyDBI session知道被測試,所以我希望找到一種方法來模擬DSN或類似的東西。但是,我不清楚我該怎麼做。如何針對POE EasyDBI編寫測試?

有人曾經/解決過這個問題嗎?

回答

0

也許Test::Database::Tutorial/Test::Database這是你需要的。或者你使用

2

創建你的__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" ], 
);