Requiring State in order to MatchΒΆ

A matcher can include a field requiresState, which dictates the state Hoverfly must be in for there to be a match:

"request": {
    "path": [
            "matcher": "exact",
            "value": "/basket"
    "requiresState": {
        "eggs": "present",
        "bacon" : "large"
"response": {
    "status": 200,
    "body": "eggs and large bacon"

In the above case, the following matches results would occur when making a request to /basket:

Current State of Hoverfly matches? reason
eggs=present,bacon=large true Required and current state are equal
eggs=present,bacon=large,f=x true Additional state ‘f=x’ is not used by this matcher
eggs=present false Bacon is missing
eggs=present,bacon=small false Bacon is has the wrong value