Может ли контракт, сгенерированный с помощью pact-jvm, быть проверен с помощью pact-net или pact-ruby? - PullRequest
0 голосов
/ 17 октября 2019

Использование тела pact-jvm-consumer-junit может иметь

 DslPart etaResults = new PactDslJsonBody()
                .integerType("x",1)
                .asBody();

Результат в файле контракта:

"$.body.x": {
   "match": "integer"
}

Использование pact-net или pact-provider-validator для проверкиВ контракте отображается следующее сообщение: ПРЕДУПРЕЖДЕНИЕ: игнорирование неподдерживаемых правил соответствия {"match" => "integer"} для пути $ ['body'] ['x']

Установка вывода в PactSpecVersion.V2 с помощьюPactProviderRule не помогает, все та же ошибка.

Является ли текущий проверяющий-провайдер pact, предположительно, способным читать контракт, который содержит "match": "integer". Какую версию спецификации pact действительно ожидает pact-провайдер-верификатор?

Это ошибка, что pact-jvm, установленный в PactSpecVersion.V2, должен выводить "match": "integer" или это должно быть "match": "type"?

1 Ответ

1 голос
/ 18 октября 2019

Похоже, что он сериализуется как v3 вместо v2, как вы говорите, integer не является допустимым типом для v2.

Если бы вы могли предоставить суть вашего кода (или, лучше, рабочий пример), мы, вероятно, можем докопаться до сути.

Короче говоря, сериализованные пакты v2 должны быть совместимыс другими языками, которые поддерживают v2.

...