Testing Basics
Truth Checks
A truth check verifies that a value is usable in a condition.
truthy
A truthy value behaves as true in an `if` condition.
Truth Checks
truth_checks.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;
sub check_truthy {
my ($value) = @_;
return $value ? "pass" : "fail";
}
my $token = "ready";
my $status = check_truthy($token);
my $length = length $token;
print "token=$token\n";
print "length=$length\n";
print "status=$status\n";
use strict;
use warnings;
sub check_truthy {
my ($value) = @_;
return $value ? "pass" : "fail";
}
my $token = "";
my $status = check_truthy($token);
my $length = length $token;
print "token=$token\n";
print "length=$length\n";
print "status=$status\n";
use strict;
use warnings;
sub check_truthy {
my ($value) = @_;
return $value ? "pass" : "fail";
}
my $token = "go";
my $status = check_truthy($token);
my $length = length $token;
print "token=$token\n";
print "length=$length\n";
print "status=$status\n";
$token ← ready
9my $token→ ready = "ready"; #@token="", "go"10my $status = check_truthy($tokenready);11my $length = length $token;$value ← ready
4sub check_truthy {5 my ($value→ ready) = @_;6 return $valueready ? "pass" : "fail";7}$status ← pass, $length ← 5
9my $token = "ready"; #@token="", "go"10my $status→ pass = check_truthy($tokenready);11my $length→ 5 = length $tokenready;1213print "token=$tokenready\n";14print "length=$length5\n";15print "status=$statuspass\n";outputtoken=ready length=5 status=pass
$token ← (empty)
9my $token→ (empty) = "";10my $status = check_truthy($token(empty));11my $length = length $token;$value ← (empty)
4sub check_truthy {5 my ($value→ (empty)) = @_;6 return $value(empty) ? "pass" : "fail";7}$status ← fail, $length ← 0
9my $token = "";10my $status→ fail = check_truthy($token(empty));11my $length→ 0 = length $token(empty);1213print "token=$token(empty)\n";14print "length=$length0\n";15print "status=$statusfail\n";outputtoken= length=0 status=fail
$token ← go
9my $token→ go = "go";10my $status = check_truthy($tokengo);11my $length = length $token;$value ← go
4sub check_truthy {5 my ($value→ go) = @_;6 return $valuego ? "pass" : "fail";7}$status ← pass, $length ← 2
9my $token = "go";10my $status→ pass = check_truthy($tokengo);11my $length→ 2 = length $tokengo;1213print "token=$tokengo\n";14print "length=$length2\n";15print "status=$statuspass\n";outputtoken=go length=2 status=pass