Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Test::DatabaseRow without SQL

Of course, writing SQL is not fun, especially if you don't know SQL. You might prefer to write the logic in Perl and not care about the SQL stuff.

#!/usr/bin/perl
use strict;
use warnings;

use Test::More tests => 1;
use Test::DatabaseRow;
use DBI;

system "$^X examples/dbi/create_sample.pl";
END { unlink 'sample.db' }

my ($email, $pw) = ('foo@bar.com', 'secret');

my $dbh = DBI->connect("dbi:SQLite:dbname=sample.db");

local $Test::DatabaseRow::dbh = $dbh;


row_ok( 
    table => 'people',
    where => { '='  => {
                        email => $email, 
                        pw    => $pw,
                        }
            },
    tests => { 'eq' => {
                        fname => 'Foo', 
                        lname => 'Bar',
                        },
            },
    label => 'Foo Bar',
);

$dbh->disconnect;

Results:

1..1
ok 1 - Foo Bar