### NAME ###
Test::More::Behaviour - BDD module for Perl
### INSTALL ###
```
$ cpan -i Test::More::Behaviour
```
### SYNOPSIS ###
``` perl
describe 'Bank Account' => sub {
context 'transferring money' => sub {
it 'withdrawals amount from the source account' => sub {
my $source = BankAccount->new(100);
my $target = BankAccount->new(0);
$source->transfer(50, $target);
is($source->balance, 50);
};
it 'deposits amount into target account' => sub {
my $source = BankAccount->new(100);
my $target = BankAccount->new(0);
$source->transfer(50, $target);
is($target->balance, 50);
};
};
};
```
### DESCRIPTION ###
Test::More::Behaviour is a Behaviour-Driven Development module for Perl
programmers. It is modeled after Rspec [http://rspec.info](http://rspec.info) the infamous BDD tool for Ruby programmers.
Because Test::More::Behaviour uses Test::More as its 'base', you can treat every Test::More::Behaviour test as if it were Test::More!
### QUICK REFERENCE ###
This project is built with the philosophy that 'Tests are the Documentation'. For a full set of features, please read through the test scenarios.
#### describe ####
Used to group a set of examples of a particular behaviour of the system that you wish you describe.
#### it ####
An example to run.
#### context ####
Used to further establish deeper relations for a set of examples. This is best used when several examples have similar interactions with the system but have differring expectations.
#### before_all ####
#### before_each ####
#### after_each ####
#### after_all ####
Used to define code which executes before and after each example or only once per example group.
### SOURCE ###
The source code for Test::More::Behaviour can be found at [https://github.com/bostonaholic/test-more-behaviour](https://github.com/bostonaholic/test-more-behaviour)
### BUGS AND LIMITATIONS ###
Currently, each `it` will not run as a Test::More::subtest. This is because the coloring was not working correctly because subtest needed the description before evaluating the block passed in. If you can fix this, please submit a github pull request and I will take a look.
If you do find any bugs, please send me an email or send me a github pull request with a broken test (and your fix if you're able to) and I will be more than happy to fix.
### DEPENDENCIES ###
[Test::More](http://search.cpan.org/~mschwern/Test-Simple-0.98/lib/Test/More.pm)
[Term::ANSIColor](http://search.cpan.org/~rra/Term-ANSIColor-3.01/ANSIColor.pm)
[version](http://search.cpan.org/~jpeacock/version-0.93/lib/version.pod)
[IO::Capture::Stdout](http://search.cpan.org/~reynolds/IO-Capture-0.05/lib/IO/Capture/Stdout.pm) (test only)
### AUTHOR ###
Matthew Boston <matthew DOT boston AT gmail DOT com> with special thanks to Dustin Williams.
### COPYRIGHT ###
Copyright (c) 2011 Matthew Boston. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
### DISCLAIMER ###
I assume no responsibility if this documentation is incorrect or outdated. The tests are fully documenting of this software.