【发布时间】:2019-01-10 16:14:44
【问题描述】:
我有类似 { Data: {a: [{ date1: "2018-12-23", date2: "23-11-2018" },{ date1: "2018-12-20",date2: " 23-11-2018" }] } }
并想测试每个 date1 字段是否小于今天的日期并且每个 date2 是否小于输入日期字段(我在输入有效负载中有一个日期字段)我该如何执行。
【问题讨论】:
标签: karate
我有类似 { Data: {a: [{ date1: "2018-12-23", date2: "23-11-2018" },{ date1: "2018-12-20",date2: " 23-11-2018" }] } }
并想测试每个 date1 字段是否小于今天的日期并且每个 date2 是否小于输入日期字段(我在输入有效负载中有一个日期字段)我该如何执行。
【问题讨论】:
标签: karate
在很多方面,这里有一个。将此代码重构为更清洁是您的功课:P
* def toTime1 =
"""
function(s) {
var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
var sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.parse(s).time
}
"""
* def toTime2 =
"""
function(s) {
var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
var sdf = new SimpleDateFormat("dd-MM-yyyy");
return sdf.parse(s).time
}
"""
* def input = toTime2("24-11-2018")
* def today = new java.util.Date().time
* def isValid1 = function(x){ return toTime1(x) < today }
* def isValid2 = function(x){ return toTime2(x) < input }
* def response = [{ date1: "2018-12-23", date2: "23-11-2018" }, { date1: "2018-12-20", date2: "23-11-2018" }]
* match each response == { date1: '#? isValid1(_)', date2: '#? isValid2(_)' }
【讨论】: