Как мы можем использовать hashmap как переменную в блоке where - PullRequest
0 голосов
/ 12 июня 2019

Я хочу поставить набор здесь, как?Я гуглил это spock where block new HashSet получил какой-либо результат.

    @Unroll
    def "Sample"() {
        expect:
            .....
        where:
        base | exponent || result1 | result2
        1    | 2        || 1 | {{I want to put a SET<ID> here, how?}}

    }

1 Ответ

1 голос
/ 12 июня 2019

Я думаю, что вы не просто новичок Спока (я заметил в вашем предыдущем вопросе), но и новичок Groovy.Нет проблем.:-) Вы должны скорее Google для groovy set literal и найти что-то вроде эта страница .

В Spock вы можете определить переменные в блоке where: в качестве параметров метода для вашей функцииmethod (метод теста), включая присвоение им таких типов:

@Unroll
def "sample"(int base, int exponent, int result1, Set<Integer> result2) {
  expect:
  result2 instanceof Set

  where:
  base | exponent || result1 | result2
  1    | 2        || 1       | [1, 2, 3]
}

Это приведет к приведению или приведению литерала списка в набор.Или вы можете сэкономить много печатать и просто использовать оператор Groovy as, как показано на странице, на которую я ссылаюсь:

@Unroll
def "sample"() {
  expect:
  result2 instanceof Set

  where:
  base | exponent || result1 | result2
  1    | 2        || 1       | [1, 2, 3] as Set<Integer>
}

Вместо Set<Integer> вы бы использовали Set<Id> независимо от вашего Id класс может быть.

...