Как составить список строк в Groovy - PullRequest
0 голосов
/ 28 ноября 2018

Я немного озадачен тем, что здесь происходит.Я пытаюсь сделать тест, который проверяет, что 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.[Плачет]

1 Ответ

0 голосов
/ 30 ноября 2018

Пожалуйста, посмотрите мой ответ здесь https://stackoverflow.com/a/46801418/2145769 Вы столкнулись с той же проблемой.

...