Как в ScalaTest, так и в specs2 легко создавать контрольные примеры во время выполнения для параметризации их с помощью данных.Вот пример с specs2:
class BasketSpecification extends Specification {
"a basket must contain fruits" >> {
Seq(apple, banana, orange) foreach { fruit =>
("it contains: " + fruit) >> {
basket must contain(fruit)
}
}
}
}
Тогда вывод будет:
A basket must contain fruits
+ it contains: apple
+ it contains: banana
+ it contains: orange
Тогда как следующая спецификация:
class BasketSpecification extends Specification {
"a basket must contain fruits" >> {
Seq(apple, cake, orange) foreach { fruit =>
("it contains: " + fruit) >> {
basket must contain(fruit)
}
}
}
}
Распечатает что-то вроде:
A basket must contain fruits
+ it contains: apple
x it contains: cake
'basket' does not contain 'cake'
+ it contains: orange