package Test::BDD::Cucumber::StepContext; BEGIN { $Test::BDD::Cucumber::StepContext::VERSION = '0.05'; } use Moose; =head1 NAME Test::BDD::Cucumber::StepContext - Data made available to step definitions =head1 VERSION version 0.05 =head1 DESCRIPTION The coderefs in Step Definitions have a single argument passed to them, a C object. This is an attribute-only class, populated by L. =head1 ATTRIBUTES =head2 data Step-specific data. Will either be a text string in the case of a """ string, or an arrayref of hashrefs if the step had an associated table. =cut has 'data' => ( is => 'ro' ); =head2 stash A hash of hashes, containing three keys, C, C and C. The stash allows you to persist data across features, scenarios, or steps (although the latter is there for completeness, rather than having any useful function). =cut has 'stash' => ( is => 'ro', required => 1, isa => 'HashRef' ); =head2 feature =head2 scenario =head2 step Links to the L, L, and L objects respectively. =cut has 'feature' => ( is => 'ro', required => 1, isa => 'Test::BDD::Cucumber::Model::Feature' ); has 'scenario' => ( is => 'ro', required => 1, isa => 'Test::BDD::Cucumber::Model::Scenario' ); has 'step' => ( is => 'ro', required => 1, isa => 'Test::BDD::Cucumber::Model::Step' ); =head2 verb The lower-cased verb a Step Definition was called with. =cut has 'verb' => ( is => 'ro', required => 1, isa => 'Str' ); =head2 text The text of the step, minus the verb. Placeholders will have already been multiplied out at this point. =cut has 'text' => ( is => 'ro', required => 1, isa => 'Str' ); =head2 harness The L harness being used by the executor. =cut has 'harness' => ( is => 'ro', required => 1, isa => 'Test::BDD::Cucumber::Harness' ); =head2 matches Any matches caught by the Step Definition's regex. These are also available as C<$1>, C<$2> etc as appropriate. =cut has 'matches' => ( is => 'rw', isa => 'ArrayRef' ); =head1 AUTHOR Peter Sergeant C =head1 LICENSE Copyright 2011, Peter Sergeant; Licensed under the same terms as Perl =cut 1;