Uts*_*hah 2 unit-testing scala scalatest
我有一个看起来像这样的方法:
def compute[T](l: List[T]): List[T] = {
val shuffled = util.Random.shuffle(l)
// do some more computations
}
Run Code Online (Sandbox Code Playgroud)
我想为我的单元测试设置随机数生成器的种子,这样我就不必将我的方法分解成两种方法并只测试计算,因为这是将在外部使用的方法。这可以在 ScalaTest 中做到吗?
我在 ScalaTest 方面没有太多背景,但是如果你打电话,setSeed(seed: Long): Unit那么对于任何给定的种子值,你总是会得到相同的洗牌。
scala> util.Random.shuffle(Seq(1,2,3,4,5,6,7,8,9,0))
res0: Seq[Int] = List(6, 0, 8, 5, 4, 7, 2, 3, 1, 9)
scala> util.Random.setSeed(57L)
scala> util.Random.shuffle(Seq(1,2,3,4,5,6,7,8,9,0))
res1: Seq[Int] = List(5, 3, 2, 0, 6, 8, 7, 4, 1, 9)
scala> util.Random.setSeed(57L)
scala> util.Random.shuffle(Seq(1,2,3,4,5,6,7,8,9,0))
res2: Seq[Int] = List(5, 3, 2, 0, 6, 8, 7, 4, 1, 9)
Run Code Online (Sandbox Code Playgroud)