2013-11-23 27 views
3

我知道我可以make scalacheck tests deterministic,但我有一个更普遍的问题:scalacheck的默认非确定性行为是否会导致实际问题?我一直认为测试应该是确定性的和可重复的,而另一种方式则表明测试设计不好。 Scalacheck似乎被用于一些“严肃”的项目中,所以我想知道打破这个确定性原则是否实际上是一个真实的(不仅是理论上的)问题?scalacheck非确定性方法是否有问题?

回答

2

我想说“测试应该是确定性和可重复的”并不总是适用。他们显然有他们相当大的地方,但随机测试也很有用。除了QuickCheck/ScalaCheck和朋友之外,还有诸如fuzzing的方法。

+0

您所提供的链接说,“所以为了能够重现错误,模糊软件往往会记录输入的数据它产生”,并回答我的问题,谢谢! – kuonirat

+0

是的,ScalaCheck特别默认打印任何失败测试的参数(当然,如果你有一个强大的'toString',它只会工作得很好)。 –