问题标签 [specs2]

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 投票
2 回答
5235 浏览

scala - 如何使用 Specs2 和 Scalacheck 自动测试字符串参数?

为 Scala重写的specs2测试框架将自动化测试与scalacheck集成在一起。specs2 文档中给出的关于如何将 scalacheck 与 specs2 一起使用的示例使用整数或更复杂的自定义生成器,如eric 的 json 示例

在尝试让一个稍微不那么复杂的示例工作时,我很挣扎,因为如果我想生成字符串参数而不是整数,我不知道如何使用 specs2 和 scalacheck。这个快速入门示例如何

p>

scalacheck 主页看,如果它是使用 scalacheck 集成编写为 Specs2 规范的?

0 投票
3 回答
8882 浏览

scala - 具有多个测试用例的 Scalatest 或 specs2

在 TestNg 和 Java 中,我们可以使用 DataProvider 运行多个测试用例,这作为单独的测试运行,这意味着测试的执行不会因失败而停止。ScalaTest 或 Specs/Specs2 是否有类似物?

0 投票
2 回答
1528 浏览

scala - Configuring junitxml output for specs2 tests in sbt 0.10

How do I configure sbt 0.10 to use the junitxml option with specs2?

The specs2 documentation says this is the way to do it using sbt 0.7.x:

override def testOptions = super.testOptions ++ Seq(TestArgument("junitxml"))

How do I say the same thing in sbt 0.10?

0 投票
1 回答
306 浏览

scala - 如何在 Specs2 中重用描述 * 和 * 匹配器的值?

我目前正在使用|>scalaz 来实现以下目标:

这允许我.toString在测试用例的描述中重用对象的。但是由于 Specs2 似乎支持某种复杂的东西,比如通过扫描src文件夹从测试源中提取东西——他们一定考虑过这个特殊的用例。

还有Given, When,Then东西,但它看起来非常冗长。

那么如何重用相同的对象进行描述和匹配?我认为我的解决方案是可以接受的,但括号困扰着我。实际上它看起来像这样:

0 投票
1 回答
1582 浏览

scala - 如何从命令行运行 Scala + specs2?

我是一个全新的 Scala 程序员,以前没有使用 Java 的经验;我来自红宝石。我正在尝试运行我的第一个 TDD 示例程序。我正在计划一些非常小的东西,可能有 5 或 6 个测试。我正在尝试使用 specs2 库。我没有 IDE,我通常用 vim 编程并从命令行执行东西。

如何从命令行对我的小 .scala 文件使用 scala 和 specs2?

快速入门中,他们提到了这一点:

  1. 我不知道省略号 ( ...) 代表什么。我必须在那里放什么?
  2. 该命令引用(我假设)一个名为specs2.run. 但在下载部分,我只得到一个 .jar 文件。在哪里specs2.run
  3. 依赖项部分中,我在两种技术之间给出了 - sbt 和 maven(我用谷歌搜索了它们,以前不知道它们)。无论如何我都必须使用 sbt/maven 吗?我不能只使用控制台命令吗?它只有 1 个包含 5 个测试的文件。
  4. 我知道有一个示例应用程序,但同样没有关于如何运行它的说明。我认为它已准备好与 sbt 和 maven 一起使用。我宁愿不必为了快速测试而学习使用其中的任何一个。是否可以?

非常感谢。

0 投票
1 回答
1128 浏览

scala - 以模块化方式创建 Specs2 匹配器

我有功能A => Double。我想检查两个这样的函数beCloseTo对于给定的一组值是否给出相同的结果(最大容差,使用现有的匹配器)。

我希望能够写:

我想以模块化的方式构建这个匹配器,而不是简单地Matcher[TF]从头开始编写。

如果我能写的话可能会更好:

当匹配器失败时,我也想得到一个合理的描述。

编辑

在睡过它之后,我想出了以下内容。

这比 Eric 的解决方案要短得多,但没有提供好的失败消息。我希望能够在第二种方法中重命名映射值。类似于以下内容(无法编译)。

0 投票
2 回答
549 浏览

scala - Specs2:如何将 Seq[Matcher[A]] 变成单个 Matcher[A]?

给定一个序列Seq[Matcher[A]],我想获得一个Matcher[A]在序列内的所有匹配器都成功时成功的单个序列。

编辑

我自己提供的答案似乎有点笨拙,此外,如果该序列的所有失败匹配器都产生结果,那就太好了

0 投票
5 回答
8142 浏览

scala - 并行执行测试

我注意到 SBT 正在并行运行我的 specs2 测试。这看起来不错,除了我的一个测试涉及从文件读取和写入,因此会意外失败,例如见下文。

有没有比这更好的选择

  1. 将所有测试设置为串行运行,
  2. 为每个测试使用单独的文件名和拆卸?
0 投票
2 回答
793 浏览

scala - 尝试在 Specs2 上最终使用闭包编写测试失败

我正在尝试使用 Specs2 编写以下规范,但似乎无法使其正常工作,编译器总是抱怨“Unit => org.specs2.execute.Result 没有可用的隐式视图”。

这是测试源:

完成后删除功能如下:

如果此行位于规范的末尾,它确实有效:

为什么它会像这样失败,我该怎么做才能仍然使用闭包并让测试编译?

编辑

将 deleteWhenDone 调用更改为:

但还是不行。

编辑 2

感谢 Rafael 的回答,使其工作的最终代码是:

我错过了方法返回类型。谢谢!

0 投票
2 回答
1637 浏览

unit-testing - Scala 规范单元测试

我有以下课程,我想编写一些 Spec 测试用例,但我对它真的很陌生,我不知道如何开始。我的班级确实像这样:

谢谢!