问题标签 [scalacheck]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - Scalacheck 不会正确报告失败的情况
我写了以下规范
这在其范围内非常清楚。
测试成功通过,但是当我强制它失败时(例如通过注释掉其中一个if
语句),ScalaCheck 会正确报告错误,但消息没有正确提及用于评估命题的实际值。更具体地说,我得到:
你可以看到arg0 = "" // 4 shrinks
的地方没有显示价值。
我什至尝试添加一个简单的println
语句来审查案例,但输出似乎被修剪了。我得到这样的东西
解决方案
eclipse - 将 scalacheck 与 Propspec 和 PropertyCheck 一起使用时,如何让 ScalaTest 正确报告测试结果?
我想使用基于属性的测试和 scalacheck 来测试我的 scala 程序。我写 :
但这似乎是错误的,因为当我使用 ScalaTest 运行此类时,我进入了控制台:
所以问题是:我的财产是伪造的,但测试通过了!?!有人看到我的代码有什么问题吗?
谢谢...
编辑:我试图调用 myProperty 而不是 myProperty.check,但这并没有好多少,因为这样,生成器似乎被忽略了(只启动了一个测试而不是一百个)。
scala - 通过不同的名称访问 scalacheck 生成的元组元素
我一起使用 ScalaTest 和 Scalacheck。这是我的惰性对(它不起作用,因为这里我们得到 Gen[(Int, Int)] 作为结果而不是 Tuples2 所以我不能使用模式匹配):
为了使用 forAll 的两个参数,我想以这种方式使用上面提到的两个 val:
我可以通过这种方式创建一个 Gen[(Int, Int)]:
但在那之后,我无法通过名称访问元素。
长时间使用 scalacheck 可能是一个简单的问题,但我只是一个初学者并尝试了很多解决方案,所以知道如何解决这个问题吗?
编辑: 一种解决方案可能是在任何时候使用:
和:
但是,当所有生成的开始和结束都不满足条件时,就会有测试失败的可能性。所以它几乎不是最好的解决方案(或者至少是一个好的解决方案)。
scalacheck - scalacheck 非确定性方法有问题吗?
我知道我可以使 scalacheck 测试确定性,但我有一个更普遍的问题:scalacheck 的默认非确定性行为是否会导致实际问题?我一直认为测试应该是确定性和可重复的,反之则表明测试设计不佳。Scalacheck 似乎被用于几个“严肃”的项目中,所以我想知道打破这个确定性原则是否实际上是现实生活中的(不仅仅是理论上的)问题?
scala - scalac 在 ScalaTest 测试中发现错误的 forAll 方法
我有一个 ScalaTest 2 类,它可以扩展GeneratorDrivenPropertyChecks
,也可以间接扩展FeatureSpec
和Matchers
(通过我写的扩展这两个类的特征)。它有这样的代码:
这无法编译,因为 scalac 说:
事实证明,至少根据 Eclipse Scala IDE,编译器将“forAll”解析为这个方法,在GeneratorDrivenpropertyChecks
:
这不是forAll
我想在这里使用的方法!
这是 ScalaTest 中的一个错误(即这两个方法不应该都被命名forAll
)?
我应该如何调用正确的方法?
scala - 创建一个任意类
我有一个看起来像这样的类:
我想添加一个内部类 Persons 的 Arbitrary,以便我可以在 EpidemySimulator 类上定义一些属性。我认为伴随对象可以定义必要的隐式生成器,以便定义将生成 Person 类型对象的属性。
Arbitrary[sim.Person]
我的理解是,如果我提供了创建给定特定(隐式提供)的隐式函数,sim:EpidemySimulator
那么我应该能够创建一个属性,如propertyOne
. 但是我在属性上得到一个编译器错误,上面写着
任何想法我做错了什么。我希望能够最终:
scalacheck - ScalaCheck 集合生成器
我正在使用 Scalacheck 并希望生成给定大小的集合。scalaCheck 中有一个特殊的功能Gen.listOfN(size, Gen[T])
。当forAll
我在方法中打印生成的集合的大小时,它并不总是具有定义的大小。实际上,它仅在第一次尝试时具有给定的大小。例如,大小 6 --> 第一次尝试收集的大小是 6,第二次尝试大小只有 3。我做错了什么?
scala - 测试超过 8 个参数的函数
ScalaCheck api 定义了 8 个 forAll 方法,用于从具有多达 8 个参数的函数创建属性。是否可以测试具有超过 8 个参数的函数?
scalacheck - 当第二个的生成取决于第一个时,如何编写带有 2 个参数的测试?
如何为第二个参数 someBoundedInt 编写一个生成器,它将在为 minmaxBound 生成的值之间随机生成一个 Int?