A basic test compares an actual value with an expected value.

assertion An assertion checks whether a result matches what the test expected.

Equality Checks

actual
equality_checks.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

sub check_equal {
    my ($actual, $expected) = @_;
    return $actual eq $expected ? "pass" : "fail";
}

my $actual = "green";
my $expected = "green";
my $status = check_equal($actual, $expected);

print "actual=$actual\n";
print "expected=$expected\n";
print "status=$status\n";
use strict;
use warnings;

sub check_equal {
    my ($actual, $expected) = @_;
    return $actual eq $expected ? "pass" : "fail";
}

my $actual = "blue";
my $expected = "green";
my $status = check_equal($actual, $expected);

print "actual=$actual\n";
print "expected=$expected\n";
print "status=$status\n";
use strict;
use warnings;

sub check_equal {
    my ($actual, $expected) = @_;
    return $actual eq $expected ? "pass" : "fail";
}

my $actual = "red";
my $expected = "green";
my $status = check_equal($actual, $expected);

print "actual=$actual\n";
print "expected=$expected\n";
print "status=$status\n";
  1. $actual ← green, $expected ← green

    9my $actual→ green = "green"; #@actual="blue", "red"10my $expected→ green = "green";11my $status = check_equal($actualgreen, $expectedgreen);
  2. $actual ← green, $expected ← green

    4sub check_equal {5    my ($actual→ green, $expected→ green) = @_;6    return $actualgreen eq $expectedgreen ? "pass" : "fail";7}
  3. $status ← pass

    10my $expected = "green";11my $status→ pass = check_equal($actualgreen, $expectedgreen);1213print "actual=$actualgreen\n";14print "expected=$expectedgreen\n";15print "status=$statuspass\n";
    outputactual=green
    expected=green
    status=pass
  1. $actual ← blue, $expected ← green

    9my $actual→ blue = "blue";10my $expected→ green = "green";11my $status = check_equal($actualblue, $expectedgreen);
  2. $actual ← blue, $expected ← green

    4sub check_equal {5    my ($actual→ blue, $expected→ green) = @_;6    return $actualblue eq $expectedgreen ? "pass" : "fail";7}
  3. $status ← fail

    10my $expected = "green";11my $status→ fail = check_equal($actualblue, $expectedgreen);1213print "actual=$actualblue\n";14print "expected=$expectedgreen\n";15print "status=$statusfail\n";
    outputactual=blue
    expected=green
    status=fail
  1. $actual ← red, $expected ← green

    9my $actual→ red = "red";10my $expected→ green = "green";11my $status = check_equal($actualred, $expectedgreen);
  2. $actual ← red, $expected ← green

    4sub check_equal {5    my ($actual→ red, $expected→ green) = @_;6    return $actualred eq $expectedgreen ? "pass" : "fail";7}
  3. $status ← fail

    10my $expected = "green";11my $status→ fail = check_equal($actualred, $expectedgreen);1213print "actual=$actualred\n";14print "expected=$expectedgreen\n";15print "status=$statusfail\n";
    outputactual=red
    expected=green
    status=fail