Я немного озадачен тем, что здесь происходит.Я пытаюсь сделать тест, который проверяет, что addLDocument()
пройдено List
из String
с, где в List
есть 10 String
с.Есть несколько вызовов на addLDocument
... они обычно должны иметь 10 String
с в List
, передаваемом в качестве параметра.
Очевидно, что в настоящее время тест должен быть с ошибкой (это так, но не в ту сторону), так как в настоящее время я пропускаю только один String
за раз.Цель состоит в том, чтобы изменить код для прохождения теста, упаковав последующие String
s в пакеты по 10.
for( String textLine : allTextLines ) {
List<String> textLines = []
textLines.add( textLine )
addLDocument( textLines )
}
def addLDocument( List<String> textLines ) {
...
}
В моем тесте у меня есть это:
given:
List stringVal
...
then:
1 * spyCH.addLDocument( _ ) >> {
arguments -> stringVal = arguments[ 0 ]
}
println "stringVal $stringVal size ${stringVal.size()}"
stringVal.size() == 10
then:
( 1 .. _ ) * spyCH.addLDocument( _ ) >> null
... к сожалению, я нахожу, что бы я ни делал, stringVal.size()
считает общее количество символов в любых String
s, содержащихся в textLines
.
Почему это может быть?Как заставить textLines
содержать набор дифференцированных String
с, а для size()
указать количество таких элементов в List
?
позже
О, дорогая, теперь загадочная непоследовательность: после добавления строк, предложенных Даггеттом, я попытался «откатиться»: что мне нужно было сделать, чтобы вернуться к «неправильному» количеству символоввместо количества элементов.Замена List<String> xxx....
на List xxx...
, а затем на def xxx...
теперь дает size() == 1
.[Плачет]