.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::BDD::Cucumber::StepContext 3pm" .TH Test::BDD::Cucumber::StepContext 3pm "2014-10-09" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::BDD::Cucumber::StepContext \- Data made available to step definitions .SH "VERSION" .IX Header "VERSION" version 0.31 .SH "DESCRIPTION" .IX Header "DESCRIPTION" The coderefs in Step Definitions have a single argument passed to them, a \&\f(CW\*(C`Test::BDD::Cucumber::StepContext\*(C'\fR object. This is an attribute-only class, populated by Test::BDD::Cucumber::Executor. .PP When steps are run normally, \f(CW\*(C`C()\*(C'\fR is set directly before execution to return the context; this allows you to do: .PP .Vb 1 \& sub { return C\->columns } .Ve .PP instead of: .PP .Vb 1 \& sub { my $c = shift; return $c\->columns; } .Ve .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" .SS "columns" .IX Subsection "columns" If the step-specific data supplied is a table, the this attribute will contain the column names in the order they appeared. .SS "_data" .IX Subsection "_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. .PP See the \f(CW\*(C`data\*(C'\fR method below. .SS "stash" .IX Subsection "stash" A hash of hashes, containing three keys, \f(CW\*(C`feature\*(C'\fR, \f(CW\*(C`scenario\*(C'\fR and \f(CW\*(C`step\*(C'\fR. 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). .PP The scenario-level stash is also available to steps by calling \f(CW\*(C`S()\*(C'\fR, making the following two lines of code equivalent: .PP .Vb 2 \& sub { my $context = shift; my $stash = $context\->stash; $stash\->{\*(Aqcount\*(Aq} = 1 } \& sub { S\->{\*(Aqcount\*(Aq} = 1 } .Ve .SS "feature" .IX Subsection "feature" .SS "scenario" .IX Subsection "scenario" .SS "step" .IX Subsection "step" Links to the Test::BDD::Cucumber::Model::Feature, Test::BDD::Cucumber::Model::Scenario, and Test::BDD::Cucumber::Model::Step objects respectively. .SS "verb" .IX Subsection "verb" The lower-cased verb a Step Definition was called with. .SS "text" .IX Subsection "text" The text of the step, minus the verb. Placeholders will have already been multiplied out at this point. .SS "harness" .IX Subsection "harness" The Test::BDD::Cucumber::Harness harness being used by the executor. .SS "matches" .IX Subsection "matches" Any matches caught by the Step Definition's regex. These are also available as \&\f(CW$1\fR, \f(CW$2\fR etc as appropriate. .SS "is_hook" .IX Subsection "is_hook" The harness processing the output can decide whether to shop information for this step which is actually an internal hook, i.e. a Before or After step .SH "METHODS" .IX Header "METHODS" .SS "background" .IX Subsection "background" Boolean for \*(L"is this step being run as part of the background section?\*(R". Currently implemented by asking the linked Scenario object... .SS "data" .IX Subsection "data" See the \f(CW\*(C`_data\*(C'\fR attribute above. .PP Calling this method will return either the """ string, or a possibly Transform-ed set of table data. .SS "matches" .IX Subsection "matches" See the \f(CW\*(C`_matches\*(C'\fR attribute above. .PP Call this method will return the possibly Transform-ed matches . .SS "transform" .IX Subsection "transform" Used internally to transform data and placeholders, but it can also be called from within your Given/When/Then code. .SH "AUTHOR" .IX Header "AUTHOR" Peter Sergeant \f(CW\*(C`pete@clueball.com\*(C'\fR .SH "LICENSE" .IX Header "LICENSE" Copyright 2011\-2014, Peter Sergeant; Licensed under the same terms as Perl