NAME
Wetware::Test::Suite - Basic Test::Class methods
SYNOPSIS
use Wetware::Test::Suite;
use base q{Wetware::Test::Suite};
DESCRIPTION
This module inherits from Wetware::Test::Class, so it will be useable within the Test::Class::Load approach.
This module provides the five common methods that are used over and over and over again in a Test::Class apporach to providing appropriate test coverage.
This makes creating the simple starter test case really simple
sub test_new_method_name : Test(1) {
my $self = shift;
my $class = $self->class_under_test();
Test::More::can_ok($class, 'new_method_name');
return $self;
}
Which is a great wayt to make sure that one is not starting a new method that one has already inherited.
Methods
- test_new()
-
This will compare that the object_under_test() returned an object that isa_ok() for the class_under_test
- class_under_test()
-
This defines which class is actually under test.
Thus subclasses override this, and put in their class.
- set_up( [ %params ] )
-
This is the Test(setup) method - and it calls
class_under_test()
. to get the class to construct.It can take an optional hash of parameters to pass to the constructor.
It will return $self.
It will call
new_object_under_test_for(%params)
to create the test object. - new_object_under_test_for(%params)
-
Passes the %params to the class constructor, and sets the object under.
This can be used to construct a new object, and will replace the previous one.
Note - if your sub class starts doing interesting things with the constructor, and there are need for default params, then overriding this method will make that reasonably simple.
- object_under_test()
-
Accessor to the object under test. This way one can do the other stock test format:
sub test_new_method_name : Test(1) { my $self = shift; my $object = $self->object_under_test(); Test::More::can_ok($object, 'new_method_name'); # ever more increasing testing of the object # ... return $self; }
in anticipation of actully using the one that was created by the set_up.
- tear_down()
-
Deletes the object under test.
SEE ALSO
Test::Class
Test::More
Test::Differences - great eq_or_diff_text() method!
Test::Exception - because some things NEED to throw exceptions.
ACKNOWLEDGEMENTS
I want to thank Matisse Enzer for the introduction to building up Test::Class based testing.
I am still debating if we really gain anything with useing 'class_under_test()' to define the key into $self where we keep object_under_test.
AUTHOR
"drieux", <"drieux [AT] at wetware.com">
COPYRIGHT & LICENSE
Copyright 2009 "drieux", all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.