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
|
Cucumber's wire protocol allows step definitions to be
implemented and invoked on any platform.
Communication is over a TCP socket, which Cucumber connects to when it finds
a definition file with the .wire extension in the step_definitions folder
(or other load path). Note that these files are rendered with ERB when loaded.
A `Wire::DataPacket` flowing in either direction is formatted as a JSON-encoded
string, with a newline character signaling the end of a packet. See the
specs for `Cucumber::Wire::DataPacket` for more details.
Cucumber sends the following request messages out over the wire:
* `step_matches` - Find out whether the wire server has a definition for a step
* `invoke` - Ask for a step definition to be invoked
* `begin_scenario` - signals that cucumber is about to execute a scenario
* `end_scenario` - signals that cucumber has finished executing a scenario
* `snippet_text` - requests a snippet for an undefined step
Every message supports two standard responses:
* `success` - expects different arguments (sometimes none at all) depending
on the request that was sent.
* `fail` - causes a Cucumber::Wire::Exception to be raised.
Some messages support more responses - see individual scenarios for details.
|