1
我正在編寫一個Groovy腳本斷言,它正在驗證以前的JDBC響應步驟中的值與SOAP響應中包含的值之間的值。SOAPUI方括號引起我的實際結果導致斷言失敗
當我運行我的腳本時,我可以看到兩個值回來了,但實際結果值(來自SOAP響應)被方括號包圍,這反過來使得斷言失敗。我猜這是一個字符串,而不是一個?
如何從實際結果中去掉方括號或者將它們添加到預期的結果值中以確保斷言通過?
下面是我的斷言腳本。
預期的結果是001 實際結果是[001]
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)
def pxml = new XmlSlurper().parseText(context.response)
//grab the expected result from jdbc response
def expectedCodes = context.expand('${JDBC Request#ResponseAsXml#//*:TW304_PRODHIST.PRODUCT_1}')
//grab the actual result from the SOAP response
def actualCodes = pxml.'**'.findAll{it.name() == 'CurrHospProductCode'}*.text()
assert expectedCodes == actualCodes
log.info expectedCodes
log.info actualCodes
謝謝你饒。您對添加[0]的初始回覆確實使測試通過,這非常棒。我也嘗試用'find'替換'findAll',但在那裏存在相同的問題。但我可以根據您的初始答案將其標記爲現在回答。 – Matt
這是因爲'text()'之前的'*'。如果使用'find','*'也可以被刪除。 – Rao
是的,你是對的。一切都有道理。再次感謝您回答我的問題。 – Matt