javascript - Karate 框架 - 为什么 Javascript 函数返回一个包含 NaN 值的数组?

标签 javascript sublimetext karate

我在 Karate 场景中编写了 javascript 函数,该函数在参数中接受当前日期,并获取日期、年份、月份并将它们添加到数组中。但由于某种未知的原因,我得到了 NaN 值。请参阅下面我一直在使用的 Karate 步骤。

    * def dateArr2 = []
    * def dateParse =
        """
            function(myOrderDate)
            {
              dateArr2.add(myOrderDate); // this is for test purpose

              var today = new Date(myOrderDate);
              var dd = today.getDate();     
              var mm = today.getMonth()+1; //January is 0!
              var yyyy = today.getFullYear();
              dateArr2.add(yyyy);
              dateArr2.add(mm);
              dateArr2.add(dd);               
            }
        """ 
   * def ongoingDateTime = "2018-10-19T11:53:39.8795965Z"
   * eval dateParse(ongoingDateTime)     

请注意,如果我在 js 执行环境(例如 sublime-text)中执行,类似的 javascript 代码也适用于我。

最佳答案

请保持简单并使用 Java。文档中有示例:https://github.com/intuit/karate#java-interop

如果太麻烦,就写JS实用函数。

* def toDate =
    """
    function(s) {
      var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
      var sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
      return sdf.parse(s)           
    }
    """ 
* def raw = "2018-10-19T11:53:39.8795965Z"
* def date = toDate(raw)
* print date.day, date.month, date.year

只需查看 java.util.Date 的 API,您现在就拥有了所有这些。

关于javascript - Karate 框架 - 为什么 Javascript 函数返回一个包含 NaN 值的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52892338/

相关文章:

javascript - JQuery onclick 覆盖 div

javascript - 流体宽度 slider

xpath - Karate - 使用命名空间解析 XML

cucumber - 如何读取 Karate 框架功能文件中的响应 header value ?

javascript - Ajax 请求、数据库和安全

javascript - Highchart 上的复选框拒绝选中或取消选中

ide - Sublime Text 2中是否有与 “Format indenting of selected code”等效的Textmate?

github - 使用 sublime text 2 的缩进问题

haskell - 使用 Sublime 2 进行 Haskell 开发?

java - 使用 Maven 和 Jenkins 进行 Karate Api 测试