#groovy #spock #junit5
#groovy #spock #junit5
Вопрос:
Я хочу протестировать конкретное поведение системы с учетом всех значений (а иногда и исключая несколько) из перечисления. Этого можно легко достичь в Junit5 с помощью @EnumSource
аннотации. Есть ли какая-либо альтернатива в Spock2 (или какое-либо простое обходное решение)?
Ответ №1:
Вы можете использовать способность Spocks использовать любой Iterable
источник данных:
import spock.lang.*
class EnumSpec extends Specification {
def "let's try this!"(Color color) {
expect:
color.name() == ''
where:
color << Color.values()
}
}
enum Color {
RED, BLUE, GREEN
}
Этот тест, конечно, завершится трижды неудачно, поскольку имя не является пустым, но он показывает, как вы можете выполнить итерацию по всем значениям перечисления.