File: Extension.pm

package info (click to toggle)
libtest-bdd-cucumber-perl 0.50-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 584 kB
  • ctags: 219
  • sloc: perl: 4,620; makefile: 8
file content (129 lines) | stat: -rw-r--r-- 3,104 bytes parent folder | download
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;