Test::FIT Example Page
Click this link to run all the tests on this page: fit-run.cgi
MathFixture Example
This is the same test that is discussed in the Test::FIT
documentation.
You just create an table like this:
  
    
      | MathFixture 
 | 
    
      | x 
 | y 
 | sum 
 | diff 
 | 
    
      | 1 
 | 2 
 | 3 
 | -1 
 | 
    
      | -8 
 | 12 
 | 4 
 | -4 
 | 
  
The MathFixture Perl class looks like this:
package MathFixture;
use base 'Test::FIT::ColumnFixture';
use Test::FIT;
attribute 'x';
attribute 'y';
sub sum {
    my $self = shift;
    $self->eq_num($self->x + $self->y);
}
sub diff {
    my $self = shift;
    $self->eq_num($self->x - $self->y);
}
1;
SampleFixture Example
Here is a demonstration of some of the various properties of a
ColumnFixture class:
  
    
      | SampleFixture 
 | 
    
      | first 
 | last 
 | perl_hacker 
 | last_backwards 
 | 
    
      | Brian 
 | Ingerson | 
 | nosregnI 
 | 
    
      | Ward 
 | Cunningham 
 | 
 | draW 
 | 
    
      | George 
 | Bush 
 | 
 | hsuB 
 | 
  
The SampleFixture.pm Perl class looks like this:
package SampleFixture;
use base 'Test::FIT::ColumnFixture';
use Test::FIT;
    
attribute 'first';
attribute 'last';
    
sub perl_hacker {
    my $self = shift;
    my $name = join ' ', $self->first, $self->last;
    if ($name =~ /(Ward|Brian)/) {
        $self->pass("Oh yes");
    }
    else {
        $self->fail("No way!");
        $self->stop;
    }
}
    
sub last_backwards {
    my $self = shift;
    $backwards = join '', reverse split '', $self->last;
    $self->eq_str($backwards);
}
1;
Test::FIT::ColumnFixture Example
You can actually use the ColumnFixture class all by itself. This is
only for very simple types of tests.
  
    
      | Test::FIT::ColumnFixture 
 | 
    
      | x 
 | x_eq_str 
 | x_is_like 
 | 
    
      | Brian Ingerson 
 | Brian Ingerson 
 | ingy 
 | 
    
      | Ward Cunningham 
 | Karen CunningHam 
 | Cunning 
 | 
  
The Test::FIT::Fixture provides a few dummy attributes like x, y and z
for convenience. So the attribute definitions in the MathFixture example
were not actually necessary.
Error Examples
These tables show some various error conditions:
No header row defined...
Invalid method for class...
  
    
      | Test::FIT::ColumnFixture 
 | 
    
      | x 
 | foo 
 | is_like 
 | 
    
      | Brian Ingerson 
 | Brian Ingerson 
 | ingy 
 | 
    
      | Ward Cunningham 
 | Karen CunningHam 
 | Cunning 
 | 
  
Invalid class altogether...
  
    
      | bogus_Fixture 
 | 
    
      | x 
 | eq_str 
 | is_like 
 | 
    
      | Brian Ingerson 
 | Brian Ingerson 
 | ingy 
 | 
    
      | Ward Cunningham 
 | Karen CunningHam 
 | Cunning 
 | 
  
Note how error messages appear directly in the cell that caused them.
Click this link to run all the tests on this page: fit-run.cgi
Download Test-FIT from http://www.cpan.org/modules/by-authors/id/I/IN/INGY/