2. Simple situation
package Users;
use strict;
use warnings;
use DB;
sub get {
my ($user_id) = @_;
my $user = DB::fetch_query( "SELECT * FROM users WHERE id = ?", $user_id );
if ($user) {
return $user;
} else {
die('no user found');
}
}
1;
4. Test for simple situation
sub fetch_exists : Auto {
my ($self) = @_;
$self->addStub('DB::fetch_query');
my $result = Users::get(1);
$self->setResult($result);
}
5. Record/Play mode
sub get {
my ($user_id) = @_;
my $user = DB::fetch_query( "SELECT * FROM users WHERE id = ?", $user_id );
if ($user) {
return $user;
} else {
die('no user found');
}
}
6. Database change
package Users;
use strict;
use warnings;
use DB;
sub get {
my ($user_id) = @_;
my $user = DB::fetch_query( "SELECT * FROM users WHERE id = ?", $user_id );
if ($user) {
return $user;
} else {
die('no user found');
}
}
1;
9. Exception example
sub fetch_not_exists : Auto {
my ($self) = @_;
$self->addStub('DB::fetch_query');
my $result = Users::get(-42);
return $self->setResult($result);
}
10.
11. Ensure function call
package Users;
...
sub delete {
my ($user_id) = @_;
DB::query( "DELETE FROM users WHERE id = ?", $user_id );
return 1;
}
12. Test for user deletion
sub delete_user : Auto {
my ($self) = @_;
$self->addMock('DB::query');
my $result = Users::delete(1);
$self->setResult($result);
}