Test2::Compare::Object - Representation of an object during deep
comparison.
This class lets you specify an expected object in a deep comparison. You can
check the fields/elements of the underlying reference, call methods to verify
results, and do meta checks for object type and ref type.
- $class = $obj->meta_class
-
The meta-class to be used when checking the object type. This is mainly listed
because it is useful to override for specialized object subclasses.
This normally just returns the Test2::Compare::Meta manpage.
- $class = $obj->object_base
-
The base-class to be expected when checking the object type. This is mainly
listed because it is useful to override for specialized object subclasses.
This normally just returns 'UNIVERSAL'.
- $obj->add_prop(...)
-
Add a meta-property to check, see the Test2::Compare::Meta manpage. This method
just delegates.
- $obj->add_field(...)
-
Add a hash-field to check, see the Test2::Compare::Hash manpage. This method
just delegates.
- $obj->add_item(...)
-
Add an array item to check, see the Test2::Compare::Array manpage. This method
just delegates.
- $obj->add_call($method, $check)
-
- $obj->add_call($method, $check, $name)$obj->add_call($method, $check, $name)
-
- $obj->add_call($method, $check, $name, $context)$obj->add_call($method, $check, $name, $context)
-
Add a method call check. This will call the specified method on your object and
verify the result.
$method may be a method name, an array ref, or a coderef.
If it's an arrayref, the first element must be the method name, and
the rest are arguments that will be passed to it.
In the case of a coderef it can be helpful to provide an alternate
name. When no name is provided the name is either $method or the
string '\&CODE'.
If $context is 'list' , the method will be invoked in list
context, and the result will be an arrayref.
If $context is 'hash' , the method will be invoked in list
context, and the result will be a hashref (this will warn if the
method returns an odd number of values).
The source code repository for Test2-Suite can be found at
https://github.com/Test-More/Test2-Suite/.
- Chad Granum
-
- Chad Granum <exodist@cpan.org>Chad Granum
-
Copyright 2018 Chad Granum <exodist@cpan.org>.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
See http://dev.perl.org/licenses/
|