Как использовать Pact Matcher для значений, отличных от 'Strings'

В pact-jvm (groovy на стороне потребителя и gradle на стороне поставщика) я пытаюсь использовать сопоставители Pact, как показано ниже:

name regexp(~/\w+/,'sony')

Будет ли регулярное выражение Pact matcher работать только для строк? Для значений, отличных от строк, нужно ли использовать термин Pact?

Если ответ «да» на два вышеупомянутых вопроса. Пожалуйста, объясните мне, как использовать термин Pact в классном стиле.

Я пробовал использовать термин Пакта, как показано ниже:

date Pact.Term(generate :"02/11/2013", matcher:/\d{2}\/\d{2}\/\d{4}/)

Но получилось здорово - MethodMissingException. Мой полный ответ для справки:

withBody {
                id regexp('[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}','e8cda07e-849f-49c2-94d6-aaa5c4ab7fcd')
                name regexp(~/\w+/,'sony')
                date Pact.Term(generate :"02/11/2013", matcher:/\d{2}\/\d{2}\/\d{4}/)
        }

person Janani Sampath Kumar    schedule 10.02.2017    source источник


Ответы (1)


Регулярное выражение применяется только к строкам.

Если вы хотите сопоставить дату, я бы предложил использовать сопоставитель date, например

withBody {
                id regexp('[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}','e8cda07e-849f-49c2-94d6-aaa5c4ab7fcd')
                name regexp(~/\w+/,'sony')
                date date("dd/MM/yyyy", "02/11/2013")
         }

См. Доступные методы DSL https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-consumer-groovy#dsl-methods-1

person Matthew Fellows    schedule 13.02.2017