2

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

有人以前/解决过这个问题吗?

4

2 回答 2

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" ],
);
于 2013-04-17T17:25:05.113 回答
0

也许Test::Database::Tutorial/Test::Database这就是你需要的。或者您从您的__DATA__with创建测试数据库:cache:

于 2013-04-16T20:23:32.257 回答