Сопоставление запроса в режиме проволоки со сравнением двух параметров запроса
Я использую Wiremock (чтобы издеваться над нашим Rest API) для тестов селена. У меня есть конечная точка отдыха, как http://localhost:8080/compare-date?from=2018-03-01&to=2018-03-10
Для этого мы пытаемся создать интеллектуальный макет, используя Java
, который будет вызываться только тогда, когда to
дата меньше чем from
Дата. Пример: http://localhost:8080/compare-date?from=2018-03-01&to=2018-02-10
Но я не могу этого достичь. Пожалуйста, предложите, как это можно сделать. Заранее спасибо.
Спасибо, дхарани
3 ответа
Теперь это возможно с LinqMatcher из версии C# .NET из WireMock.Net.
Пример JSON для соответствия вашему запросу может быть:
{
"Request": {
"Path": {
"Matchers": [
{
"Name": "WildcardMatcher",
"Pattern": "/linq"
}
]
},
"Params": [
{
"Name": "from",
"Matchers": [
{
"Name": "LinqMatcher",
"Pattern": "DateTime.Parse(it) > \"2018-03-01 00:00:00\""
}
]
}
],
"Body": {}
},
"Response": {
"Body": "linq match !!!"
}
}
На данный момент вам лучше всего создать кастом RequestMatcher
реализация, которая может определить, попадает ли дата между параметрами запроса.
В идеале вы должны ожидать ответа как часть вашего теста. При этом, если вы хотите эту функциональность от вашей заглушки, то вам придется расширять ее.
Существует несколько способов расширения WireMock, большинство из которых можно найти на этой странице: http://wiremock.org/docs/extending-wiremock/.
Честно говоря, я бы, вероятно, использовал конкретные годы для конкретного ответа и создал бы правила для них.