空手道:在请求中传递 java long
Karate: passing java long as long in request
下面是我的简化示例
Feature: Get document
Background:
* url 'some_url'
* def basepath = 'some_path'
Scenario: get document
Given path basepath
And header Accept = 'application/json'
And request { 'string_arg': '#(name)', 'id': #(id) }
When method post
Then def document = response
如下调用
var req = {'string_arg': 'myname','id': request_id };
var response = karate.call("classpath:getDocument.feature", req)
request_id
是从之前的调用中检索到的,类似于 1612472688416
它发送请求为
{ "string_arg": "myname", "id": "1612472688416" }
终端服务(不在我的控制范围内)希望像下面这样 -- 没有双引号
{ "string_arg": "myname", "id": 1612472688416 }
我尝试了 javascript Number、parseInt 甚至调用 java.lang.Long.parseLong 但在所有情况下它最终都是科学记数法,如请求中的 1.612472688416E12
。
我怎样才能做到这一点?
阅读文档:https://github.com/intuit/karate#large-numbers
* def big = new java.math.BigDecimal(123123123123)
* string json = { num: '#(big)' }
* match json == '{"num":123123123123}'
下面是我的简化示例
Feature: Get document
Background:
* url 'some_url'
* def basepath = 'some_path'
Scenario: get document
Given path basepath
And header Accept = 'application/json'
And request { 'string_arg': '#(name)', 'id': #(id) }
When method post
Then def document = response
如下调用
var req = {'string_arg': 'myname','id': request_id };
var response = karate.call("classpath:getDocument.feature", req)
request_id
是从之前的调用中检索到的,类似于 1612472688416
它发送请求为
{ "string_arg": "myname", "id": "1612472688416" }
终端服务(不在我的控制范围内)希望像下面这样 -- 没有双引号
{ "string_arg": "myname", "id": 1612472688416 }
我尝试了 javascript Number、parseInt 甚至调用 java.lang.Long.parseLong 但在所有情况下它最终都是科学记数法,如请求中的 1.612472688416E12
。
我怎样才能做到这一点?
阅读文档:https://github.com/intuit/karate#large-numbers
* def big = new java.math.BigDecimal(123123123123)
* string json = { num: '#(big)' }
* match json == '{"num":123123123123}'