【问题标题】:How to test each date field in the array response using Karate如何使用空手道测试数组响应中的每个日期字段
【发布时间】: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


    【解决方案1】:

    在很多方面,这里有一个。将此代码重构为更清洁是您的功课: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(_)' }
    

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多