Java 空手道-Runner.runFeature()的响应中缺少双引号
我试图在Runner.runFeature()执行后在java中获得响应,但是从一些实体中删除了双引号 名为的功能文件正在读取外部json文件。 然后动态地改变空手道中的值并制作帖子 在输出中,我看到文件有双引号。 但是在执行之后,当我在响应映射中看到时,一些对象上的双引号被删除 初始json文件(sample.json): 功能文件,读取外部json文件:Java 空手道-Runner.runFeature()的响应中缺少双引号,java,karate,Java,Karate,我试图在Runner.runFeature()执行后在java中获得响应,但是从一些实体中删除了双引号 名为的功能文件正在读取外部json文件。 然后动态地改变空手道中的值并制作帖子 在输出中,我看到文件有双引号。 但是在执行之后,当我在响应映射中看到时,一些对象上的双引号被删除 初始json文件(sample.json): 功能文件,读取外部json文件: * def entityCreate = read('..//utils/sample.json') Scenario:P
* def entityCreate = read('..//utils/sample.json')
Scenario:Post
------------------------------------------------------------------------------------------------------------
Creating unique BusinessPartner
Given url uri
And request entityCreate
When method post
Then status 201
从JAVA类调用功能文件:
Map<String, Object> resultCreate = Runner.runFeature(getClass(), "/../odata/businesspartner/businessPartnerCreateTest.feature", null, true);
结果:
{d={ChangeRequestType=AAA, AdditionalInformation=bla, RequestReason=test BP creation, BusinessPartner={BPCategory=2, Description=BLA, CentralData={Name1=NYJKPEFB0818GR4, Name2=NYJKPEFB0818GR4, NameOrg1=LM60Q9ZBBXM4SHXWNJZK, NameOrg2=LM60Q9ZBBXM4SHXWNJZK}, TaxNumbers=[{"TaxNumberCategory":"ABC","TaxNumberProperty":"123"}], IdentificationNumbers=[{"IdentificationType":"ABC","IDNumber":"1234"}], BankDetails=[{"BankdetailsID":"0001","BankNumber":"210","BankAccount":"12345","BankCountry":"DE","BankAccountName":"Hardcoded bank account"}], Addresses=[{"AddressType":"1","PhysicalAddresses":[{"HouseNumber":"40","City":"Berlin","PostalCode":"1333","CountryKey":"DE","Street":"BLA"}]}]}}}
有些已移除,有些保留
感谢您的帮助,我迷路了,很可能犯了愚蠢的错误。很可能您正在打印字符串连接,在幕后JSON可能很好:
否则,无法从您提供的内容中辨别。也许你应该遵循这个过程:我添加了更多细节-我希望这能解释得更多一些…@PePe-nope这对我来说太复杂了:我尝试尽可能地最小化-看起来Runner正在解析这个特定的JSON结构并删除它“从中。请求是正确创建的,等等。我试图抓住JAVA的请求,但我总是让它“损坏”。或者以错误的方式解析它
entityCreate=[type:MAP,value:{ChangeRequestType=AAA,AdditionalInformation=bla RequestReason=出于测试目的,BusinessPartner={BPCategory=2,Description=bla,CentralData={Name1=test API,NameOrg1=Organization},Address=[{“AddressType”:“1”,“PhysicalAddresses”:[{“CountryKey”:“DE”}]}}]}}]
对象映射中的值。我可以把请求的纯文本/字符串传递给Java吗?好的,我回答自己-我想昨天晚了。我刚刚使用了*string=entityCreate-haha.@Peter Thomas-在将值重写为原始字符串后,我可以复制有效负载吗?
System.out.println(resultCreate.get("entityCreate").toString());
{d={ChangeRequestType=AAA, AdditionalInformation=bla, RequestReason=test BP creation, BusinessPartner={BPCategory=2, Description=BLA, CentralData={Name1=NYJKPEFB0818GR4, Name2=NYJKPEFB0818GR4, NameOrg1=LM60Q9ZBBXM4SHXWNJZK, NameOrg2=LM60Q9ZBBXM4SHXWNJZK}, TaxNumbers=[{"TaxNumberCategory":"ABC","TaxNumberProperty":"123"}], IdentificationNumbers=[{"IdentificationType":"ABC","IDNumber":"1234"}], BankDetails=[{"BankdetailsID":"0001","BankNumber":"210","BankAccount":"12345","BankCountry":"DE","BankAccountName":"Hardcoded bank account"}], Addresses=[{"AddressType":"1","PhysicalAddresses":[{"HouseNumber":"40","City":"Berlin","PostalCode":"1333","CountryKey":"DE","Street":"BLA"}]}]}}}