2013-04-16 5 views
2

Я ищу некоторые идеи или методы для написания тестов против кода, который использует EasyDBI session для доступа к данным в mysql. Я не хочу, чтобы знал о тестировании, поэтому я надеялся найти способ издеваться над DSN или что-то в этом роде. Но мне непонятно, как я могу это сделать.Как написать тесты против POE EasyDBI?

У кого-нибудь была/решена эта проблема раньше?

ответ

0

Возможно, Test::Database::Tutorial/Test::Database это то, что вам нужно. Или вы создаете тестовую базу данных из своего __DATA__ с :cache:

2

В итоге я использовал DBD: Mock, который довольно хорош. Когда я настраивал свой простой компонент 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" ], 
);