【问题标题】:Embedded expressions with karate DSL don't replace value in json空手道 DSL 的嵌入式表达式不会替换 json 中的值
【发布时间】:2017-09-14 20:50:40
【问题描述】:

所以基本上我只是从空手道测试框架开始,并且可能遗漏了一些非常简单的东西,但我似乎无法正确解决嵌入式表达式。如果我有一个这样的功能文件,它会通过几种方式做同样的事情:

Feature: Test Service

  Background:
    * url 'http://testurl:8080'
    * def localDateTime = Java.type('java.time.LocalDateTime')

  Scenario: Successful request

    * def createDateTime = LocalDateTime.now()
    * def testRequest =
    """
    {
      createDateTime: "#(createDateTime)",
      expiryDateTime:"#(localDateTime.now().plusMinutes(5))"
    }
    """
    * print testRequest
    * set testRequest.createDateTime = createdTime
    * print testRequest

然后当它到达打印行时,我得到这样的输出,其中值为空 js 对象 {}

16:43:28.580 [main] INFO com.intuit.karate - [print] {"createDateTime":{},"expiryDateTime":{}}16:43:28.586 [main] DEBUG com.jayway.jsonpath .internal.PathCompiler - 使用缓存路径:$true[]

另外,我可以看到它似乎在为第一个打印语句设置路径,如下所示:

16:32:30.612 [main] 调试 com.jayway.jsonpath.internal.CompiledPath - 评估路径:$['createDateTime'] 16:32:30.613 [main] 调试 com.jayway.jsonpath.internal.JsonReader - 设置路径 $['createDateTime'] 新值 2017-09-14T16:32:30.566 16:32:30.629 [main] 调试 com.jayway.jsonpath.internal.CompiledPath - 评估路径:$['expiryDateTime'] 16:32:30.629 [main] 调试 com.jayway.jsonpath.internal.JsonReader - 设置路径 $['expiryDateTime'] 新值 2017-09-14T16:37:30.621

谁能向我解释为什么我无法将实际日期插入到 testRequest 中?

谢谢。

【问题讨论】:

    标签: karate


    【解决方案1】:

    如果您将这些日期对象转换为字符串,我认为您的问题将得到解决。

    * def LocalDateTime = Java.type('java.time.LocalDateTime')
    * def createDate = LocalDateTime.now() + ''
    * def expiryDate = LocalDateTime.now().plusMinutes(5) + ''
    * def testRequest = { createDateTime: '#(createDate)', expiryDateTime: '#(expiryDate)' }
    * print karate.pretty(testRequest)
    

    以上对我有用,这是输出:

    06:11:47.010 [main] INFO  com.intuit.karate - [print] {
      "createDateTime": "2017-09-15T06:11:46.983",
      "expiryDateTime": "2017-09-15T06:16:46.990"
    }
    

    【讨论】:

    • 这似乎做到了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多