【问题标题】:How do I write tests against POE EasyDBI?如何针对 POE EasyDBI 编写测试?
【发布时间】:2013-04-16 20:11:47
【问题描述】:

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

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

【问题讨论】:

    标签: perl poe


    【解决方案1】:

    我最终使用了相当不错的 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" ],
    );
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-12
        • 1970-01-01
        相关资源
        最近更新 更多