作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下使用Prop.collect((a, b))
即使测试成功运行,也没有按预期打印统计信息。
import org.scalacheck.Prop
import org.scalatest.{GivenWhenThen, PropSpec}
import org.scalatest.prop.{Checkers, GeneratorDrivenPropertyChecks}
import org.scalacheck.Prop.AnyOperators
class AccountSpecWithMarkup extends PropSpec with Checkers with GeneratorDrivenPropertyChecks {
property("max") {
check({
(a:Int, b:Int) => {
Prop.collect((a, b)) {
a != b || a == b
}
}
})
}
}
最佳答案
一个老问题,可能很久以前就有人回答或解决过,但由于我是一个试图找出问题的 scalacheck 新手,我将自愿做出回应。
不知道为什么您的示例没有按预期工作,但是这个更简单的测试可以解决问题(在 Scalacheck 1.14 中):
import org.scalacheck.Properties
import org.scalacheck.Prop.{forAll,collect}
object AccountSpecWithMarkup extends Properties("AccountSpecWithMarkup") {
property("max") = forAll { (a: Int, b: Int) =>
collect((a, b)) {
a != b || a == b
}
}
}
object
延伸
Properties
.
Properties.property
val 的类型为
PropertySpecifier
,它封装了可变状态(
Props
的集合)并有一个
update
方法。这条线
property("max") = forAll { ... }
property.update("max", forAll{ ... })
forAll
生成
Prop
类型的值.此
Prop
使用隐式
Arbitrary[Int]
累积值以供以后评估生成器为
a
生成测试值和
b
, 由
collect
收集用于报告测试结果。
+ AccountsSpectWithMarkup.max: OK, passed 100 tests.
> Collected test data:
4% (-2147483648,2147483647)
2% (1,2147483647)
2% (-1,-1)
2% (-1,0)
1% (-1,-1128775662)
1% (501893471,-2147483648)
1% (0,0)
1% (1529964222,-1507103054)
1% (36753817,-2147483648)
1% (2147483647,535423354
关于scala - 如何在ScalaTest中使用ScalaCheck的收集和分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39356894/
我是一名优秀的程序员,十分优秀!