1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
package Test::BDD::Cucumber::Extension;
$Test::BDD::Cucumber::Extension::VERSION = '0.50';
=head1 NAME
Test::BDD::Cucumber::Extension - Abstract superclass for extensions
=head1 VERSION
version 0.50
=head1 DESCRIPTION
Provides an abstract superclass for extensions. Loaded extensions will
have their hook-implementations triggered at specific points during
the BDD script execution.
=cut
use Moose;
=head1 PROPERTIES
=head2 config
A hash, the configuration read from the config file, verbatim. Extensions
should look for their own configuration in
$self->config->{extensions}->{<extension>}
=cut
has config => ( is => 'rw', isa => 'HashRef' );
=head1 METHODS
=head2 steps_directories()
The returns an arrayref whose values enumerate directories (relative to
the directory of the extension) which hold step files to be loaded when
the extension is loaded.
=cut
sub step_directories { return []; }
=head2 pre_execute()
Invoked by App::pherkin before executing any features. This callback
allows generic extension setup. Reports errors by calling croak().
=head2 post_execute()
Invoked by App::pherkin after executing all features. This callback
allows generic extension teardown and cleanup. Reports errors by calling
croak().
=cut
sub pre_execute { return; }
sub post_execute { return; }
=head2 pre_feature($feature, $feature_stash)
Invoked by the Executor before executing the background and feature scenarios
and their respective pre-hooks. Reports errors by calling croak().
=head2 post_feature($feature, $feature_stash)
Invoked by the Executor after executing the background and feature scenarios
and their respective post-hooks. Reports errors by calling croak().
=cut
sub pre_feature { return; }
sub post_feature { return; }
=head2 pre_scenario($scenario, $feature_stash, $scenario_stash)
Invoked by the Executor before executing the steps in $scenario and
their respective pre-hooks. Reports errors by calling croak().
=head2 post_scenario($scenario, $feature_stash, $scenario_stash, $failed)
Invoked by the Executor after executing all the steps in $scenario
and their respective post-hooks. Reports errors by calling croak().
$failure indicates whether any of the steps in the scenario has failed.
=cut
sub pre_scenario { return; }
sub post_scenario { return; }
=head2 pre_step($step, $step_context)
Invoked by the Executor before executing each step in $scenario.
Reports errors by calling croak().
Feature and scenario stashes can be reached through
$step_context->{stash}->{feature} and
$step_context->{stash}->{scenario}
Note: *executed* steps, so not called for skipped steps.
=head2 post_step($step, $step_context, $failed)
Invoked by the Executor after each executed step in $scenario.
Reports errors by calling croak().
$failure indicates whether the step has failed.
Note: *executed* steps, so not called for skipped steps.
=cut
sub pre_step { return; }
sub post_step { return; }
=head1 AUTHOR
Erik Huelsmann C<ehuels@gmail.com>
=head1 LICENSE
Copyright 2016, Erik Huelsmann; Licensed under the same terms as Perl
=cut
1;
|