Testing Basics
Pure Functions
A pure function is easier to test because the same input gives the same output.
Pure Functions
pure_functions.pl
use strict;
use warnings;
sub final_price {
my ($price, $discount) = @_;
return $price - $discount;
}
my $discount = ;
my $price = 12;
my $actual = final_price($price, $discount);
my $expected = $price - $discount;
my $status = $actual == $expected ? "pass" : "fail";
print "discount=$discount\n";
print "actual=$actual\n";
print "status=$status\n";
use strict;
use warnings;
sub final_price {
my ($price, $discount) = @_;
return $price - $discount;
}
my $discount = ;
my $price = 12;
my $actual = final_price($price, $discount);
my $expected = $price - $discount;
my $status = $actual == $expected ? "pass" : "fail";
print "discount=$discount\n";
print "actual=$actual\n";
print "status=$status\n";
use strict;
use warnings;
sub final_price {
my ($price, $discount) = @_;
return $price - $discount;
}
my $discount = ;
my $price = 12;
my $actual = final_price($price, $discount);
my $expected = $price - $discount;
my $status = $actual == $expected ? "pass" : "fail";
print "discount=$discount\n";
print "actual=$actual\n";
print "status=$status\n";
pure function
A pure function calculates from its arguments without changing outside state.