/ / Spock параметризация срещу Scala TableDrivenPropertyChecks - скала, scalatest

Spock параметризация срещу Scala TableDrivenPropertyChecks - скала, scalatest

Рамката на Spock съдържа @Unroll анотация, която води до показване на всеки "случай" от параметризирания тест като отделен тест. Възможно ли е нещо подобно с ScalaTest?

Отговори:

0 за отговор № 1

Най-близкото би било проверки на собствеността върху таблицата:

import org.scalatest.prop.TableDrivenPropertyChecks._

val fractions =
Table(
("n", "d"),  // First tuple defines column names
(  1,   2),  // Subsequent tuples define the data
( -1,   2),
(  1,  -2),
( -1,  -2),
(  3,   1),
( -3,   1),
( -3,   0),
(  3,  -1),
(  3,  Integer.MIN_VALUE),
(Integer.MIN_VALUE, 3),
( -3,  -1)
)

import org.scalatest.matchers.ShouldMatchers._

forAll (fractions) { (n: Int, d: Int) =>

whenever (d != 0 && d != Integer.MIN_VALUE
&& n != Integer.MIN_VALUE) {

val f = new Fraction(n, d)

if (n < 0 && d < 0 || n > 0 && d > 0)
f.numer should be > 0
else if (n != 0)
f.numer should be < 0
else
f.numer should be === 0

f.denom should be > 0
}
}

Има и други техники като "тестове за споделяне" и Повече ▼ проверка на собствеността.