/ / Paramétrage de Spock vs Scala TableDrivenPropertyChecks - scala, scalatest

Paramétrage de Spock contre Scala TableDrivenPropertyChecks - scala, scalatest

Le cadre de Spock contient @Unroll annotation qui a pour résultat de montrer chaque "cas" du test paramétré en tant que test séparé. Est-ce que quelque chose de similaire est possible avec ScalaTest?

Réponses:

0 pour la réponse № 1

Le plus proche serait le contrôles de propriété pilotés par table:

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
}
}

Il existe d'autres techniques telles que "tests de partage" et plus test basé sur les propriétés.