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
|
package Test::BDD::Cucumber::Manual::Architecture;
=head1 NAME
Test::BDD::Cucumber::Manual::Architecture - Structural Overview
=head1 VERSION
version 0.50
=head1 INTRODUCTION
This short document exists to give you an idea how the different components of
this distribution fit together.
=head1 MODELS
The core of a Cucumber-based test suite are the feature files and the step
definitions files. By convention, these are saved under C</features/> and
C</features/step_definitions/> respectively.
The feature files are encapsulated by the classes in
C<Test::BDD::Cucumber::Model>.
one to one
TBCM::Feature<----------------->TBCM::Document
| |
+-------------------+ |
| has many | has a | has many
V | V
TBCM::Scenario +----->TBCM::Line
| ^ ^
+----------------------------+ |
| has many |
V |
TBCM::Step---------------------------+
=head1 EXECUTOR
We build up a L<Test::BDD::Executor> object, in to which we load the step
definitions. We then pass this in a L<Test::BDD::Model::Feature> object, along
with a L<Test::BDD::Model::Harness> object, which controls interaction with
the outside world.
=head1 EXTENSION
Extensions allow hooking into the execution of the steps, with pre- and post
hooks for steps, scenarios, features and the entire execution. Extensions
can provide additional step directories from which steps will be made
available. The feature and scenario stashes are passed to the extension hooks
allowing for a means of communication between the hooks and the steps.
Extensions - when loaded by the pherkin test executor - receive their
configuration from the pherkin.yaml configuration file, which works
similar to L<the configuration of extensions in
Behat|http://docs.behat.org/en/v2.5/guides/7.config.html#extensions>.
=head1 AUTHOR
Peter Sergeant C<pete@clueball.com>
=head1 LICENSE
Copyright 2011-2016, Peter Sergeant; Licensed under the same terms as Perl
=cut
1;
|