问题标签 [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.

0 投票
1 回答
2046 浏览

unit-testing - Scalacheck 不会正确报告失败的情况

我写了以下规范

这在其范围内非常清楚。

测试成功通过,但是当我强制它失败时(例如通过注释掉其中一个if语句),ScalaCheck 会正确报告错误,但消息没有正确提及用于评估命题的实际值。更具体地说,我得到:

你可以看到arg0 = "" // 4 shrinks的地方没有显示价值。

我什至尝试添加一个简单的println语句来审查案例,但输出似乎被修剪了。我得到这样的东西

解决方案

0 投票
2 回答
1014 浏览

eclipse - 将 scalacheck 与 Propspec 和 PropertyCheck 一起使用时,如何让 ScalaTest 正确报告测试结果?

我想使用基于属性的测试和 scalacheck 来测试我的 scala 程序。我写 :

但这似乎是错误的,因为当我使用 ScalaTest 运行此类时,我进入了控制台:

所以问题是:我的财产是伪造的,但测试通过了!?!有人看到我的代码有什么问题吗?

谢谢...

编辑:我试图调用 myProperty 而不是 myProperty.check,但这并没有好多少,因为这样,生成器似乎被忽略了(只启动了一个测试而不是一百个)。

0 投票
1 回答
876 浏览

scala - 通过不同的名称访问 scalacheck 生成的元组元素

我一起使用 ScalaTest 和 Scalacheck。这是我的惰性对(它不起作用,因为这里我们得到 Gen[(Int, Int)] 作为结果而不是 Tuples2 所以我不能使用模式匹配):

为了使用 forAll 的两个参数,我想以这种方式使用上面提到的两个 val:

我可以通过这种方式创建一个 Gen[(Int, Int)]:

但在那之后,我无法通过名称访问元素。

长时间使用 scalacheck 可能是一个简单的问题,但我只是一个初学者并尝试了很多解决方案,所以知道如何解决这个问题吗?

编辑: 一种解决方案可能是在任何时候使用:

和:

但是,当所有生成的开始和结束都不满足条件时,就会有测试失败的可能性。所以它几乎不是最好的解决方案(或者至少是一个好的解决方案)。

0 投票
1 回答
720 浏览

scala - Gen.choose() 和 .oneOf() 的输出

运行以下测试时,两个语句Gen()都会打印出来。println

根据 ScalaCheck docs,我预计输出为:

(数,数)

“你好”或“世界”

0 投票
1 回答
183 浏览

scalacheck - scalacheck 非确定性方法有问题吗?

我知道我可以使 scalacheck 测试确定性,但我有一个更普遍的问题:scalacheck 的默认非确定性行为是否会导致实际问题?我一直认为测试应该是确定性和可重复的,反之则表明测试设计不佳。Scalacheck 似乎被用于几个“严肃”的项目中,所以我想知道打破这个确定性原则是否实际上是现实生活中的(不仅仅是理论上的)问题?

0 投票
1 回答
1524 浏览

scala - scalac 在 ScalaTest 测试中发现错误的 forAll 方法

我有一个 ScalaTest 2 类,它可以扩展GeneratorDrivenPropertyChecks,也可以间接扩展FeatureSpecMatchers(通过我写的扩展这两个类的特征)。它有这样的代码:

这无法编译,因为 scalac 说:

事实证明,至少根据 Eclipse Scala IDE,编译器将“forAll”解析为这个方法,在GeneratorDrivenpropertyChecks

这不是forAll我想在这里使用的方法!

这是 ScalaTest 中的一个错误(即这两个方法不应该都被命名forAll)?

我应该如何调用正确的方法?

0 投票
1 回答
489 浏览

scala - 创建一个任意类

我有一个看起来像这样的类:

我想添加一个内部类 Persons 的 Arbitrary,以便我可以在 EpidemySimulator 类上定义一些属性。我认为伴随对象可以定义必要的隐式生成器,以便定义将生成 Person 类型对象的属性。

Arbitrary[sim.Person]我的理解是,如果我提供了创建给定特定(隐式提供)的隐式函数,sim:EpidemySimulator那么我应该能够创建一个属性,如propertyOne. 但是我在属性上得到一个编译器错误,上面写着

任何想法我做错了什么。我希望能够最终:

0 投票
1 回答
353 浏览

scalacheck - ScalaCheck 集合生成器

我正在使用 Scalacheck 并希望生成给定大小的集合。scalaCheck 中有一个特殊的功能Gen.listOfN(size, Gen[T])。当forAll我在方法中打印生成的集合的大小时,它并不总是具有定义的大小。实际上,它仅在第一次尝试时具有给定的大小。例如,大小 6 --> 第一次尝试收集的大小是 6,第二次尝试大小只有 3。我做错了什么?

0 投票
1 回答
118 浏览

scala - 测试超过 8 个参数的函数

ScalaCheck api 定义了 8 个 forAll 方法,用于从具有多达 8 个参数的函数创建属性。是否可以测试具有超过 8 个参数的函数?

0 投票
1 回答
315 浏览

scalacheck - 当第二个的生成取决于第一个时,如何编写带有 2 个参数的测试?

如何为第二个参数 someBoundedInt 编写一个生成器,它将在为 minmaxBound 生成的值之间随机生成一个 Int?