Andrew F. Hampe > Wetware-Test > Wetware::Test::Suite

Download:
Wetware-Test-0.07.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.04   Source  

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.

syntax highlighting: