如何针对POE EasyDBI编写测试?

时间:2013-04-16 20:11:47

标签: perl poe

我正在寻找一些想法或技术来针对使用EasyDBI session访问mysql中的数据的代码编写测试。我不希望EasyDBI session知道被测试,所以我希望找到一种方法来模拟DSN或类似的东西。但是,我不清楚我该怎么做。

之前有人/解决了这个问题吗?

2 个答案:

答案 0 :(得分:2)

我最终使用了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" ],
);

答案 1 :(得分:0)

也许Test::Database::Tutorial / Test::Database这就是您所需要的。或者您使用__DATA__

:cache:创建测试数据库