Conditions Reference¶
When making test assertions with mock, Conditions enable you to express how you expect a given Request to have been made. Conditions are also used when defining Conditional Responses.
In this section you will find a reference of all available Conditions.
querystring_match
¶
Matches against a Querystring in the Request. For example, a Request
having the ?foo=bar
Querystring will be matched in the following
condition:
{
"type": "querystring_match",
"key": "foo",
"value": "bar"
}
You can also use key_values
and set multiple pairs:
{
"type": "querystring_match",
"key_values": {
"some_key": "some value",
"another_key": "another value"
}
}
querystring_match_regex
¶
Like querystring_match
, but the values match as Regular Expressions instead
of plain string comparison.
{
"type": "querystring_match_regex",
"key": "foo",
"value": "^[a-z]{1,}$"
}
You can also use key_values
and set multiple pairs:
{
"type": "querystring_match",
"key_values": {
"some_key": "^[a-z]{1,}$",
"another_key": "[0-9]{3}"
}
}
querystring_exact_match
¶
Matches against Querystring values, like querystring_match
. The
difference being that it matches only if the Request’s Querystring
contains only the specified Querystrings and no other.
{
"type": "querystring_exact_match",
"key": "some_key",
"value": "value value"
}
It’s also possible to have multiple key/value pairs in the same
condition. You will use the key_values
field instead:
{
"type": "querystring_match",
"key_values": {
"some_key": "some value",
"another_key": "another value"
}
}
querystring_exact_match_regex
¶
Like querystring_exact_match
, but the values match as Regular Expressions
instead of plain string comparison.
{
"type": "querystring_exact_match_regex",
"key": "foo",
"value": "^[a-z]{3}$"
}
It’s also possible to have multiple key/value pairs in the same
condition. You will use the key_values
field instead:
{
"type": "querystring_exact_match_regex",
"key_values": {
"some_key": "^[a-z]{1,}$",
"another_key": "[0-9]{3}"
}
}
json_body_match
¶
Matches against the JSON body payload que Request was called with.
{
"type": "json_body_match",
"key_values": {
"foo": "bar"
}
}
form_match
¶
Matches against the Request’s form-encoded data.
{
"type": "form_match",
"key_values": {
"some_key": "some value",
"another_key": "another value"
}
}
header_match
¶
Matches against the Request’s header.
{
"type": "header_match",
"key_values": {
"Some-header-key": "Some header value"
}
}
method_match
¶
Matches against the HTTP Method (Get, Post etc) the Request was called with.
{
"type": "method_match",
"value": "post"
}
route_param_match
¶
Matches against the Route Param in the requested endpoint.
{
"type": "route_param_match",
"key": "some_param_name",
"value": "some_value"
}
nth
¶
Matches if the current request is nth on the request history. Note that both route and method must match. In the example below, a match will occur only if the request is the 2nd made so far to the server.
{
"type": "nth",
"value": 2
}
It’s also possible to match all subsequent requests after a given number, just add a “+” (plus) sign after the number (note also that to accomplish this, the value must be defined as a string). For example, let’s match all requests starting from the second onwards:
{
"type": "nth",
"value": "2+"
}