Test2::Compare::Base3perl
Base class for comparison classes.
Usage
package Test2::Compare::MyCheck;use strict;use warnings;use base 'Test2::Compare::Base';use Test2::Util::HashBase qw/stuff/;sub name { 'STUFF' }sub operator {my $self = shift;my ($got) = @_;return 'eq';}sub verify {my $self = shift;my $params = @_;# Always check if $got exists! This method must return false if no# value at all was received.return 0 unless $params{exists};my $got = $params{got};# Returns true if both values match. This includes undef, 0, and other# false-y values!return $got eq $self->stuff;}
Overview
All comparison classes for Test2::Compare should inherit from this base class.
Methods
Some of these must be overridden, others can be.
- $dclass = $check->delta_class
-
Returns the delta subclass that should be used. By default Test2::Compare::Delta is used.
- @deltas = $check->deltas(id => $id, exists => $bool, got => $got, convert => \&convert, seen => \%seen)
-
Should return child deltas.
- @lines = $check->got_lines($got)
-
This is your chance to provide line numbers for errors in the
$gotstructure.
- $op = $check->
operator()
- $op = $check->operator($got)
-
Returns the operator that was used to compare the check with the received data in
$got. If there was no value for got then there will be no arguments, undef will only be an argument if undef was seen in$got. This is how you can tell the difference between a missing value and an undefined one.
- $bool = $check->verify(id => $id, exists => $bool, got => $got, convert => \&convert, seen => \%seen)
-
Return true if there is a shallow match, that is both items are arrayrefs, both items are the same string or same number, etc. This should not recurse, as deep checks are done in
"$check->deltas()".
- $name = $check->name
-
Get the name of the check.
- $display = $check->render
-
What should be displayed in a table for this check, usually the name or value.
- $delta = $check->run(id => $id, exists => $bool, got => $got, convert => \&convert, seen => \%seen)
-
This is where the checking is done, first a shallow check using
"$check->verify", then checking"$check->deltas()"."\%seen"is used to prevent cycles.
Source
The source code repository for Test2-Suite can be found at https://github.com/Test-More/test-more/.
Maintainers
- Chad Granum <[email protected]>
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.