Я не уверен, что улучшение необходимо, потому что для этой цели был разработан дополнительный маркер ##foo
, и это уже работает:
* def schema = { id: '#notnull', name: '#notnull', description: '##string' }
* def response = { id: 'someId', name: 'some name' }
* match response == schema
РЕДАКТИРОВАТЬ: но так как вы хотите ограничить свою схемус ключами в ответе «универсальным» способом вы можете сделать следующее:
* def expected = {}
* def fun = function(k, v){ expected.put(k, schema[k]) }
* eval karate.forEach(response, fun)
* match response == expected
Вы должны быть в состоянии легко создать повторно используемую утилиту JS или Java, которая достигает вышеуказанного.Несколько причин, по которым я не одобряю добавление другого ключевого слова синтаксиса / match
, заключается в том, что у вложенного JSON могут быть интересные граничные случаи, которые усложняют ситуацию.И я не хочу усложнять match
дальше.Как я уже говорил в комментариях, проверка схемы IMO - это последнее, что вам нужно проверить в GraphQL, это в значительной степени гарантировано.Это первый раз, когда кто-то просил об этом за 2 года, так что вот так.Вы можете рассмотреть возможность подачи PR, конечно:)