我正在寻找一些想法或技巧来编写测试代码,使用EasyDBI session
来访问mysql
中的数据。我不希望EasyDBI session
知道被测试,所以我希望找到一种方法来模拟DSN
或类似的东西。但是,我不清楚我该怎么做。如何针对POE EasyDBI编写测试?
有人曾经/解决过这个问题吗?
我正在寻找一些想法或技巧来编写测试代码,使用EasyDBI session
来访问mysql
中的数据。我不希望EasyDBI session
知道被测试,所以我希望找到一种方法来模拟DSN
或类似的东西。但是,我不清楚我该怎么做。如何针对POE EasyDBI编写测试?
有人曾经/解决过这个问题吗?
也许Test::Database::Tutorial
/Test::Database
这是你需要的。或者你使用
创建你的__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" ],
);