问题标签 [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 回答
107 浏览

playframework - 在 Playframework2 中,如何使用“specs2-scalacheck”?

我想在 Playframework 2.3.x 中将 ScalaCheck 与 specs2 一起使用,并在build.sbt

但是,我发现这会在编译过程中返回错误

我认为版本specs2-scalacheck可能与org.specs2Playframework 中的依赖项不兼容。但是,我不知道specs2Playframework 中的确切版本,它既不存在build.sbt也不存在于plugin.sbt.

有人对此有想法吗?

0 投票
2 回答
489 浏览

scala - 这个 ScalaTest/ScalaCheck 示例缺少什么?

我正在尝试 ScalaCheck,但无法弄清楚如何在 ScalaTest 用户手册上构建第一个示例。我很确定以下内容之前需要一些导入并包装在从某个库类扩展的类中。用户手册中的页面说要“混入” PropertyChecks,但它没有给出适当类的示例以将其混入:

我一直在尝试各种组合,但到目前为止我得到的最好结果是这样的编译错误:

什么是测试、导入和所有的完整源文件?

0 投票
1 回答
281 浏览

scala - specs2+ScalaCheck:测试应该在单元规范中失败,但没有

我正在尝试将 ScalaCheck 集成到 specs2 中的单元规范中。我一定遗漏了一些关于它是如何工作的东西:

但是,此测试执行没有失败。它肯定会在“mustEqual 1”上失败(我故意将其更改为 1,它实际上等于 n)。但是,测试输出中的结果...

[info] glimple 容器数据模型应该 [info] + 支持基本的 glimple 构造函数

0 投票
1 回答
2290 浏览

scala - 如何减少 ScalaCheck 生成的测试用例的数量?

我正在尝试解决两个 ScalaCheck (+ specs2) 问题:

  1. 有没有办法改变 ScalaCheck 生成的案例数量?

  2. 如何生成包含一些 Unicode 字符的字符串?

例如,我想生成大约 10 个包含字母数字和 Unicode 字符的随机字符串。然而,这段代码总是生成 100 个随机字符串,并且它们是严格基于字母字符的:

编辑

我才意识到还有一个问题:

  1. ScalaCheck 经常在没有生成 100 个测试用例的情况下放弃

当然,我不想要 100,但显然我的代码正试图生成一组过于复杂的规则。上次运行时,我看到“47 次测试后放弃”。

0 投票
1 回答
516 浏览

scala - 在 ScalaCheck 中创建没有空格生成器的 unicode 和 unicode

在测试期间,我们想要限定 unicode 字符,有时范围很广,有时更窄。我创建了一些特定的生成器:

latinUnicodeCharacter生成器从标准拉丁语(“A”、“B”等)到高阶拉丁语字符(日耳曼语/北欧语等)的字符中挑选。这对于测试基于拉丁语的字符输入(例如名称)很有用。

latinUnicodeGenerator创建长度为 21-40 个字符的字符串。这些字符串包括水平空格(不仅仅是空格字符,还有其他“水平空格”)。

最后一个例子,latinUnicodeGeneratorNoWhitespace,用于说电子邮件地址。我们想要拉丁字符,但我们不想要空格、控制代码等。问题:因为我正在映射最终结果String并过滤掉控制字符,所以String缩小了,我最终得到的总长度小于 21 个字符(有时)。

所以问题是:我怎样才能latinUnicodeGeneratorNoWhitespace在生成器中实现它,以便我总是得到 21-40 个字符串?

0 投票
1 回答
458 浏览

scala - ScalaCheck 中的罕见(间歇性)java.nio.charset.MalformedInputException

我的 ScalaCheck 代码中出现了一个非常罕见但可重复的 MalformedInputException。

除了“偶尔”之外,我无法完美地确定它,或者获得可靠的复制品,但这是我认为会产生问题的代码:

这是我见过的例外:

任何人都知道是什么原因造成的,更重要的是如何可靠地预防它?

0 投票
1 回答
357 浏览

scala - 无法使用 GeneratorDrivenPropertyChecks 启动测试

我想使用 scalacheck 和 scalatest 来测试一些具有随机输入值的对象。首先,我尝试了一个简单的示例,但是如果我通过 Eclipse 或通过 sbt 启动它,它会引发错误。代码是:

在执行时,我有这个错误:

我将 scalatest_2.11-2.2.1 和 scalacheck_2.11-1.12.3 与 scala 2.11.6 一起使用

当我使用 TableDrivenPropertyChecks 而不是 GeneratorDrivenPropertyChecks 进行其他测试时,它运行良好。

我在文档或谷歌中找不到任何帮助。是代码错误、错误还是版本问题?有人可以帮我找到解决方案吗?

0 投票
3 回答
804 浏览

scala - 你如何使用 ScalaCheck 生成一个打乱的序列?

我一直在尝试使用 scalacheck 生成洗牌序列。Scalacheck 没有提供任何生成器来直接完成,我在网上找不到任何简单的答案。经过一番思考,下面是我的做法。我希望其他人会发现是否有用。

0 投票
2 回答
464 浏览

unit-testing - 基于属性的测试是否会使您重复代码?

我正在尝试用基于属性的测试(PBT)替换一些旧的单元测试,具体地用scalaandscalatest - scalacheck但我认为问题更普遍。简化的情况是,如果我有要测试的方法:

通常,我会编写单元测试,例如:

所以,对于每个测试,我都会写出我期望的输出,没问题。现在,使用 PBT,它会是这样的:

当我尝试编写一个适用于所有String输入的测试时,我发现自己不得不在测试中再次编写该方法的逻辑。在这种情况下,测试看起来像:

也就是说,我必须在测试中编写实现以确保输出正确。有没有办法解决这个问题?我是否误解了 PBT,我是否应该测试其他属性,例如:

  • “字符串的长度应与原始字符串相同”
  • “字符串应该包含原始的所有字符”
  • “字符串不应包含小写字符” ...

这也是合理的,但听起来很做作,不太清楚。任何在 PBT 方面有更多经验的人都可以在这里阐明一下吗?

编辑:按照@Eric的资料,我得到了这篇文章,并且有一个我的意思的例子(在再次应用类别时):测试 timesF#)中的方法:

作者最终编写了一个测试,如下所示:

因此,为了测试该方法,该方法的代码在测试中被复制。在这种情况下,像乘法一样微不足道,但我认为它可以外推到更复杂的情况。

0 投票
2 回答
130 浏览

scala - 如何增加 scalacheck 控制台输出的 char 列宽?

scalacheck从输出运行时,sbt console受 76 个字符的列宽限制:

有没有办法增加这个限制?