unit-testing - 将集合内容与 ScalaTest 进行比较

标签 unit-testing scala scalatest

我正在尝试对一些非常依赖集合的 Scala 进行单元测试。这些集合以 Iterable[T] 形式返回,因此我对集合的内容感兴趣,即使底层类型不同。这实际上是两个相关的问题:

  1. 如何断言两个有序集合包含相同的元素序列?
  2. 如何断言两个无序集合包含同一组元素?

总之,我正在 ScalaTest 中寻找 NUnit 的 CollectionAssert.AreEqual (有序)和 CollectionAssert.AreEquivalent (无序)的 Scala 等效项:

Set(1, 2) should equal (List(1, 2))          // ordered, pass
Iterable(2, 1) should equal (Iterable(1, 2)) // unordered, pass

最佳答案

同时您可以使用

Iterable(2, 1) should contain theSameElementsAs Iterable(1, 2)

要测试有序集,您必须将其转换为序列。

Set(1, 2).toSeq should contain theSameElementsInOrderAs List(1, 2)

关于unit-testing - 将集合内容与 ScalaTest 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7434762/

相关文章:

javascript - 如何使用 axios/jest 测试失败的请求

c++依赖注入(inject)来测试类系统调用的类

python - 在父文件夹中导入 python 包时出错

unit-testing - 硬编码模拟对象与模拟框架

xml - Scala XML 支持如何工作?

scala - 如何从 pyspark 设置 hadoop 配置值

scala - 来自 "Programming Scala"的合并排序导致堆栈溢出

scala - Specs2 + JUnit + ScalaTest 初始化错误测试类无法转换为 org.scalatest.Suite

scala - 在运行Scala/SBT测试套件时设置环境变量

scala - PlayFramework + ScalaTest + ScalaCheck