2013-04-16 38 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" ], 
);