所以我的问题是作为类型的类型匹配呈现;
我有查询数据库的代码,并返回一个字符串类型的数组。当我尝试验证从Web服务返回的JSON消息时,其中一个值是原始整数(没有双引号),并且验证失败,因为它表明:< b>预期:可迭代包含{&#34; 1&#34;,&#34; 1&#34;,&#34; 1&#34;,&#34; 1&#34;,&#34; 1&#34 ;}
实际:[1,1,1,1,1]
我使用包含匹配器来验证ListArray的值对许多由查询返回。我的假设是实际被评估为整数,但要验证的值(预期)是字符串。
我&#39;我一直绞尽脑汁尝试HasToString或hasItem匹配器,但我认为如果目标是单个值,那只会解析toString。
我想我的最终问题是,有没有办法迫使Hamcrest评估将JSON数据作为String,或者将Expected隐式/显式地转换为评估类型?
提前致谢。
答案 0 :(得分:0)
所以,我认为我想出了这个;我最终做的是在提取的对象ArrayList上执行 toString()。,这给了我字符串值;代码示例如下:
ArrayList<String> myObj = response.path(jsonField);
String[] myObjStr = new String[myObj.size()];
int x = 0;
for (Object obj : myObj){
myObjStr[x] = obj.toString();
x++;
}
从那里,我能够比较得到的数组;现在,如果我能弄清楚如何摆脱嵌套元素的讨厌的尖括号......