Groovy:从字符串列表中弹出最后一个元素
Groovy: pop the last element from a string list
在我的 spock 测试 class 中,我有以下两个列表:
@Shared def orig_list = ['東京(成田・羽田)', '日本','アジア' ]
@Shared def dest_list = ['ソウル', '韓国','アジア' ]
def "Select origin"()
{
when:
something()
then:
do_something()
where:
area << orig_list.pop()
country << orig_list.pop()
port << orig_list.pop()
dest_area << dest_list.pop()
dest_country << dest_list.pop()
dest_port << dest_list.pop()
}
但是出现错误:
java.lang.IllegalArgumentException: Couldn't select option with text or value: ア....
但是如果我不使用 where 块并且喜欢:
def "Select origin"()
{
def area = orig_list.pop()
def country = orig_list.pop()
def port = orig_list.pop()
def dest_area = dest_list.pop()
def dest_country = dest_list.pop()
def dest_port = dest_list.pop()
when:
something()
then:
do_something()
}
比它工作正常。
如何从列表中获取 where 块中的值?出了什么问题?
where 块中定义的变量需要列表,但是 pop() 方法 returns 列表中的一个元素,在您的情况下似乎是一个字符串。
要么将 list.pop()
括在方括号中,就像这样 [list.pop()]
或者,也许更好,重写你的 where 块以使用列语法,即像这样的东西:
where:
area | country | port | dest_area | dest_country | dest_port
'a1' | 'c1' | 'p1' | 'da1' | 'dc1' | 'dp1'
'a2' | 'c2' | 'p2' | 'da2' | 'dc2' | 'dp2'
在我的 spock 测试 class 中,我有以下两个列表:
@Shared def orig_list = ['東京(成田・羽田)', '日本','アジア' ]
@Shared def dest_list = ['ソウル', '韓国','アジア' ]
def "Select origin"()
{
when:
something()
then:
do_something()
where:
area << orig_list.pop()
country << orig_list.pop()
port << orig_list.pop()
dest_area << dest_list.pop()
dest_country << dest_list.pop()
dest_port << dest_list.pop()
}
但是出现错误:
java.lang.IllegalArgumentException: Couldn't select option with text or value: ア....
但是如果我不使用 where 块并且喜欢:
def "Select origin"()
{
def area = orig_list.pop()
def country = orig_list.pop()
def port = orig_list.pop()
def dest_area = dest_list.pop()
def dest_country = dest_list.pop()
def dest_port = dest_list.pop()
when:
something()
then:
do_something()
}
比它工作正常。
如何从列表中获取 where 块中的值?出了什么问题?
where 块中定义的变量需要列表,但是 pop() 方法 returns 列表中的一个元素,在您的情况下似乎是一个字符串。
要么将 list.pop()
括在方括号中,就像这样 [list.pop()]
或者,也许更好,重写你的 where 块以使用列语法,即像这样的东西:
where:
area | country | port | dest_area | dest_country | dest_port
'a1' | 'c1' | 'p1' | 'da1' | 'dc1' | 'dp1'
'a2' | 'c2' | 'p2' | 'da2' | 'dc2' | 'dp2'