2016-05-25 8 views
0

配列アサーションに要素値が含まれているかどうかを確認するスクリプトアサーションを作成しています。スクリプトアサーションを使用してgroovyで配列値をアサートする方法

要素:Numberを印刷すると、配列として[1,2,3,3]のようになります。 Numberに3と書かれている場合は、スクリプトが渡されなければなりません。

私は以下のコードを書きましたが、書かれた値が配列リストなので、おそらく配列の値をアサートするのですか?

def response = messageExchange.getResponseContent() 
def xml = new XmlSlurper().parseText(response) 
def invoiceNumber= xml.'**'.findAll { it.name() == 'Number'} 
log.info "$invoiceNumber" 
assert invoiceNumber.contains(1) 

答えて

1

問題はinvoiceNumberCollectiongroovy.util.slurpersupport.NodeChildの要素の代わりにInteger要素であるということです。これはcontains(3)の比較がtrueを返すことがない理由です。

あなたは前に、整数の配列にgroovy.util.slurpersupport.NodeChildの配列を変換してきた、あなたが広がりドット演算子NodeChild.toInteger()を使用してそれを行うことができますので、あなたのスクリプトがなければなりません:

def response = messageExchange.getResponseContent() 
def xml = new XmlSlurper().parseText(response) 
def invoiceNumber= xml.'**'.findAll { it.name() == 'Number'} 
log.info "$invoiceNumber" 
// convert the array to array of integers 
invoiceNumber = invoiceNumber*.toInteger() 
// now you can perform the assert correctly 
assert invoiceNumber .contains(3) 

が、それは、

のお役に立てば幸いです
関連する問題