我是新来这个SOAP UI。 我有一个要求,以测试是否响应主体不是空的。
你能告诉我怎么解决。
我的想法是检查content-length
使用断言脚本的响应,但它不工作了equals()
。
contains()
是工作,但不equals
:
// works:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]).contains("0")
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]).equals("0")
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]) == 0
请帮我解决这个问题。
在您的代码:
// works:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]).contains("0")
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]).equals("0")
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]) == 0
表达messageExchange.responseHeaders["Content-Length"]
返回StringList
[见文档这里] ,它是一个ArrayList<String>
。
它的内容会是这样的几个Strings
,如( "abc"
, "def"
, "ghi"
)。
contains("0")
这样,当你调用list.contains("abc")
你是问,如果"abc"
是列表的元素之一。 您Content-Length
头可能是一个元素,就像(名单"0"
)。 这就是为什么list.contains("0")
返回true
,因为String
"0"
是名单上的元素之一。
equals("0")
所以,当你拨打: list.equals(something)
,它只会返回true
,如果something
作为参数传递是列表String
S以及。 "0"
是不是列表String
S,它仅仅是一个。
== 0
:
同样,当你调用list == 0
您正在测试,如果list
是整数0
,这是不。
messageExchange.responseHeaders["Content-Length"] == 0
不应该因为工作。 messageExchange.responseHeaders["Content-Length"]
返回一个List
的String
S,比所述整数不同 0
。
messageExchange.getResponse().getContentLength() == 0
作品因为messageExchange.getResponse().getContentLength()
返回Content-Length
头,为long
整数值。
messageExchange.getResponse().getContentLength()
是与获取该列表的第一值和转换为long
。 瞧这将工作: Long.valueOf(messageExchange.responseHeaders["Content-Length"].get(0)) == 0