我正在尝试对一些非常依赖集合的 Scala 进行单元测试。这些集合以 Iterable[T]
形式返回,因此我对集合的内容感兴趣,即使底层类型不同。这实际上是两个相关的问题:
- 如何断言两个有序集合包含相同的元素序列?
- 如何断言两个无序集合包含同一组元素?
总之,我正在 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/