Я пытаюсь проверить один блок данных json, которые я получаю с сервера.
json состоит из информации о группе заказов.Каждый заказ включает стоимость каждой части, налоги и итоги.И это своего рода строгое требование, каждый заказ содержит ровно 4 части.И у каждого заказа есть три вида налогов и общая сумма.
У меня есть шаг, который выглядит следующим образом:
And "standardorder" includes parts "1..4", taxes "1..3" and total
, а реализация шага похожа на следующую.Здесь @ jsonhelper.json - это общее состояние (json для одного заказа), переданное с предыдущего шага.
And /^"([^"]*)" includes parts "([^"]*)", taxes "([^"]*)" and total$/ do |arg1, arg2, arg3|
json = @jsonhelper.json
validkeys = ["total"]
parts = arg2.split('..').map{|d| Integer(d)}
(parts[0]..parts[1]).each do |i|
validkeys.push "p#{i}"
end
taxes = arg3.split('..').map{|d| Integer(d)}
(taxes[0]..taxes[1]).each do |i|
validkeys.push "t#{i}"
end
validkeys.each do |key|
json[arg1].keys.include?(key).should be_true
end
end
Теперь этот скрипт работает нормально, за исключением того, что если какой-либо из ключей отсутствует, он не указывает, какой из них отсутствует,Либо он проходит, либо не проходит, так как утверждения повторяются для каждого ключа.
Я хотел бы знать, существует ли какая-либо возможность отправки ключей, которые были бы найдены нормально для потока результатов.Таким образом, я намерен узнать, какие ключи в порядке, а какие нет, а какие пропущены.Такого порядка ключей в json не ожидается.
Заранее спасибо.