Scalatest检查地图是否包含列表中的值

时间:2017-01-26 14:31:36

标签: scala scalatest

一个方法返回一个Map元组,为了测试通过,我需要检查地图是否包含n个键,并且键值匹配。

我从一个result.foreach(f=> f._ == "value"))开始,但我似乎无法检查同一循环中的其他值。

1 个答案:

答案 0 :(得分:0)

假设你有以下定义的地图:

val test = Map( ("a","aa") -> false, ("b","bb") -> false, ("c","cc") -> true)

您可以执行以下操作:

test.map { foo => val ((tupleKey,tupleValue),value) = foo // you could add your checking of key value here (tupleKey,tupleValue,value) }

在上面的代码片段中,我使用变量名来访问元组元素。我正在返回一个元组,所以应该返回的是:

res2: scala.collection.immutable.Iterable[(String, String, Boolean)] = List((a,aa,false), (b,bb,false), (c,cc,true))

如上所示,您可以访问要访问的tupleKeytupleValuevalue。为简单起见,我使用了Strings和Boolean,但您也可以轻松地将上述示例用于您的用例。关于检查地图测试,您可以添加test.size mustEqual expectedSize,其中expectedSizeval,这是您期望的集合的大小。

如果您需要更多说明,请与我们联系。我很乐意帮忙。