Skip to content

Instantly share code, notes, and snippets.

@mattwynne
Created October 16, 2015 13:57
Show Gist options
  • Save mattwynne/ee488572aade97a53381 to your computer and use it in GitHub Desktop.
Save mattwynne/ee488572aade97a53381 to your computer and use it in GitHub Desktop.
Cucumber::Core::Ast::Background
has a useful inspect
Cucumber::Core::Ast::DataTable
equality
is equal to another table with the same data
is not equal to another table with different data
is not equal to a non table
#data_table?
returns true
#doc_string
returns false
#map
yields the contents of each cell to the block
returns a new table with the cells modified by the block
#transpose
should transpose the table
Cucumber::Core::Ast::DocString
#data_table?
returns false
#doc_string
returns true
#map
yields with the content
returns a new docstring with new content
raises an error if no block is given
equality
is equal to another DocString with the same content and content_type
is not equal to another DocString with different content
is not equal to another DocString with different content_type
is equal to a string with the same content
returns false when compared with something odd
quacking like a String
delegates #encoding to the content string
allows implicit convertion to a String
allows explicit convertion to a String
delegates #gsub to the content string
delegates #split to the content string
inspect
provides a useful inspect method
Cucumber::Core::Ast::EmptyMultilineArgument
#data_table?
returns false
#doc_string
returns false
Cucumber::Core::Ast::ExamplesTable
Cucumber::Core::Ast::ExamplesTable::Header
location
knows the file and line number
comments
has comments
building a row
includes the header values as keys
Cucumber::Core::Ast::ExamplesTable::Row
location
knows the file and line number
language
has a language
comments
has comments
expanding a string
when an argument matches
replaces the argument with the value from the row
when the replacement value is nil
uses an empty string for the replacement
when an argument does not match
ignores the arguments that do not match
accesing the values
returns the actual row values
equality
is equal to another instance with the same data, number and location
is not equal to another instance with different data, number or location
is not equal to another type of object
Cucumber::Core::Ast::Location
equality
is equal to another Location on the same line of the same file
is not equal to a wild card of the same file
collections of locations
behave as expected with uniq
line
is an integer
to_s
is file:line for a precise location
is file for a wildcard location
is file:first_line..last_line for a ranged location
matches
a precise location
matches a precise location of the same file and line
does not match a precise location on a differnt line in the same file
a wildcard
matches any location with the same filename
is matched by any location of the same file
does not match a location in a different file
a range wildcard
matches the first line in the same file
matches a line within the docstring in the same file
is matched by a line within the docstring in the same file
matches a wildcard in the same file
does not match a location outside of the range
does not match a location in another file
created from source location
when the location is in the tree below pwd
create a relative path from pwd
when the location is in an installed gem
create a relative path from the gem directory
when the location is neither below pwd nor in an installed gem
use the absolute path to the file
created from file-colon-line
handles also Windows paths
created of caller
use the location of the caller
when specifying additional caller depth
use the location of the n:th caller
Cucumber::Core::Ast::OutlineStep
location
has a location
knows the file and line
comments
has comments
converting to a Step
a single argument in the name
replaces the argument
when the step has a DataTable
replaces the arguments in the DataTable
when the step has a DocString
replaces the arguments in the DocString
Cucumber::Core::Ast::Step
describing itself
describes itself as a step
with no multiline argument
does not try to describe any children
with a multiline argument
tells its multiline argument to describe itself
comments
has comments
backtrace line
knows how to form the backtrace line
actual keyword
for keywords 'given', 'when' and 'then'
returns the keyword itself
for keyword 'and', 'but', and '*'
when the previous step keyword exist
returns the previous step keyword
when the previous step keyword does not exist
returns the 'given' keyword
for i18n languages
returns the keyword in the correct language
Cucumber::Core::Ast::ExpandedOutlineStep
describing itself
describes itself as a step
with no multiline argument
does not try to describe any children
with a multiline argument
tells its multiline argument to describe itself
comments
has comments
matching location
also match the outline steps location
backtrace line
includes the outline step in the backtrace line
Cucumber::Core::Compiler
compiles a feature with a single scenario
compiles a feature with a background
compiles multiple features
compiling scenario outlines
compiles a scenario outline to test cases
replaces arguments correctly when generating test steps
Cucumber::Core::Compiler::FeatureCompiler
a scenario with a background
sets the source correctly on the test steps
a scenario outline
sets the source correctly on the test steps
Cucumber::Core::Filter
.new
creates a filter class that can pass-through by default
customizing by subclassing
can override methods from the base class
can take arguments
customizing by using a block
allows methods to be overridden
Cucumber::Core::Gherkin::Parser
for invalid gherkin
raises an error
for empty files
creates a NullFeature
when the Gherkin has a language header
sets the language from the Gherkin
a Scenario with a DocString
parses doc strings without error
a Scenario with a DataTable
parses the DataTable
a feature file with a comments on different levels
the comments are distibuted to down the ast tree from the feature
a Scenario Outline
creates a scenario outline node
creates a step node for each step of the scenario outline
creates an examples table node for each examples table
a Scenario Outline with no Examples
throws an error
Cucumber::Core::Gherkin::Writer
generates a complex feature
specifying uri
generates a uri by default
allows you to specify a URI
a feature
generates the feature statement
when a name is provided
includes the name in the feature statement
when a description is provided
includes the description in the feature statement
when a keyword is provided
uses the supplied keyword
when a language is supplied
inserts a language statement
when a comment is supplied
inserts a comment
with a scenario
includes the scenario statement
when a comment is provided
includes the comment in the scenario statement
when a description is provided
includes the description in the scenario statement
with a step
includes the step statement
when a docstring is provided
includes the content type when provided
with a background
can have a description
with a scenario outline
can have a description
and examples table
can have a description
Cucumber::Core::Test::Action
constructed without a block
raises an error
location
with location passed to the constructor
returns the location passed to the constructor
without location passed to the constructor
returns the location of the block passed to the constructor
executing
executes the block passed to the constructor
returns a passed result if the block doesn't fail
returns a failed result when the block raises an error
yields the args passed to #execute to the block
returns a pending result if a Result::Pending error is raised
returns a skipped result if a Result::Skipped error is raised
returns an undefined result if a Result::Undefined error is raised
recording the duration
records the nanoseconds duration of the execution on the result
records the duration of a failed execution
skipping
does not execute the block
returns a skipped result
Cucumber::Core::Test::UndefinedAction
location
returns the location passed to the constructor
executing
returns an undefined result
skipping
returns an undefined result
Cucumber::Core::Test::Case
describing itself
describes itself to a visitor
asks each test_step to describe themselves to the visitor
describes around hooks in order
describes its source to a visitor
#name
created from a scenario
takes its name from the name of a scenario
created from a scenario outline example
takes its name from the name of the scenario outline and examples table
#location
created from a scenario
takes its location from the location of the scenario
created from a scenario outline example
takes its location from the location of the scenario outline example row
#tags
includes all tags from the parent feature
matching tags
matches boolean expressions of tags
matching names
matches names against regexp
#language
takes its language from the feature
matching location
for a scenario
matches the precise location of the scenario
matches the precise location of an empty scenario
matches multiple locations
matches a location on the last step of the scenario
matches a location on the scenario's comment
matches a location on the scenario's tags
doesn't match a location after the last step of the scenario
doesn't match a location before the scenario
with a docstring
matches a location at the start the docstring
matches a location in the middle of the docstring
matches a location at the end of the docstring
does not match a location after the docstring
with a table
matches a location on the first table row
for a scenario outline
matches the precise location of the scenario outline examples table row
matches a location on a step of the scenario outline
matches a location on the scenario outline's comment
matches a location on the scenario outline's tags
doesn't match a location after the last row of the examples table
doesn't match a location before the scenario outline
Cucumber::Core::Test::LocationsFilter
sorts by the given locations
works with wildcard locations
filters out scenarios that don't match
under load
filters 300 test cases within 10000ms
Cucumber::Core::Test::Result
Cucumber::Core::Test::Result::Passed
describes itself to a visitor
converts to a string
has a duration
requires the constructor argument
does nothing when appending the backtrace
does nothing when filtering the backtrace
should eq :passed
should be passed
should not be failed
should not be undefined
should not be unknown
should not be skipped
should be ok
should be truthy
should be truthy
Cucumber::Core::Test::Result::Failed
describes itself to a visitor
has a duration
requires both constructor arguments
does nothing if step has no backtrace line
appends the backtrace line of the step
apply filters to the exception
should eq :failed
should not be passed
should be failed
should not be undefined
should not be unknown
should not be skipped
should not be ok
should be falsey
should be falsey
Cucumber::Core::Test::Result::Unknown
doesn't describe itself to a visitor
should eq :unknown
should not be passed
should not be failed
should not be undefined
should be unknown
should not be skipped
Cucumber::Core::Test::Result::Raisable
with or without backtrace
does nothing if step has no backtrace line
without backtrace
set the backtrace to the backtrace line of the step
does nothing when filtering the backtrace
with backtrace
appends the backtrace line of the step
apply filters to the backtrace
Cucumber::Core::Test::Result::Undefined
describes itself to a visitor
should eq :undefined
should not be passed
should not be failed
should be undefined
should not be unknown
should not be skipped
should be ok
should be truthy
should be falsey
Cucumber::Core::Test::Result::Skipped
describes itself to a visitor
should eq :skipped
should not be passed
should not be failed
should not be undefined
should not be unknown
should be skipped
should be ok
should be truthy
should be truthy
Cucumber::Core::Test::Result::Pending
describes itself to a visitor
should eq :pending
should not be passed
should not be failed
should not be undefined
should not be unknown
should not be skipped
should be pending
should be ok
should be truthy
should be falsey
Cucumber::Core::Test::Result::Summary
counts failed results
counts passed results
counts skipped results
counts undefined results
counts abitrary raisable results
returns zero for a status where no messges have been received
doesn't count unknown results
counts combinations
records durations
records exceptions
Cucumber::Core::Test::Result::Duration
#nanoseconds can be accessed in #tap
Cucumber::Core::Test::Result::UnknownDuration
#tap does not execute the passed block
accessing #nanoseconds outside #tap block raises exception
Cucumber::Core::Test::Runner
reporting the duration of a test case
for a passing test case
records the nanoseconds duration of the execution on the result
for a failing test case
records the duration
reporting the exception that failed a test case
sets the exception on the result
with a single case
without steps
calls the report before running the case
calls the report after running the case
with steps
that all pass
reports a passing test case
an undefined step
reports an undefined test case
sets the message on the result
appends the backtrace of the result
a pending step
reports a pending test case
appends the backtrace of the result
a skipping step
reports a skipped test case
appends the backtrace of the result
that fail
reports a failing test case
appends the backtrace of the exception of the result
where the first step fails
executes the after hook at the end regardless of the failure
reports the first step as failed
reports the second step as skipped
reports the test case as failed
skips, rather than executing the second step
with multiple test cases
when the first test case fails
reports the results correctly for the following test case
passing latest result to a mapping
passes a Failed result when the scenario is failing
with around hooks
passes normally when around hooks don't fail
gets a failed result if the Around hook fails before the test case is run
gets a failed result if the Around hook fails after the test case is run
fails when a step fails if the around hook works
sends after_test_step for a step interrupted by (a timeout in) the around hook
Cucumber::Core::Test::Step
exposes the name and location of the AST step or hook as attributes
exposes the location of the action as attribute
describing itself
describes itself to a visitor
describes its source to a visitor
executing
passes arbitrary arguments to the action's block
when a passing action exists
returns a passing result
when a failing action exists
returns a failing result
with no action
returns an Undefined result
Cucumber::Core::Test::Timer
returns a Result::Duration object
would be slow to test
Cucumber::Core
compiling features to a test suite
compiles two scenarios into two test cases
filters out test cases based on a tag expression
with tag filters that have limits
on scenarios
raises a tag excess error with the location of the test cases
on scenario outlines
raises a tag excess error with the location of the test cases
on a feature with scenarios
raises a tag excess error with the location of the test cases
with negated tags
raises a tag excess error with the location of the test cases
whith multiple tag limits
raises a tag excess error with the location of the test cases
executing a test suite
filters test cases by tag
filters test cases by name
without hooks
executes the test cases in the suite
with around hooks
executes the test cases in the suite
README.md code snippet
executes with the expected output
Finished in 7.73 seconds (files took 0.30729 seconds to load)
310 examples, 0 failures
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment