2017-01-26 23 views
0

的方法正在返回的元組的一個Map,對於此測試通過我需要檢查地圖包含n鍵數以及該密鑰值相匹配。Scalatest如果地圖包含的值形成一個列表

我從result.foreach(f=> f._ == "value"))開始,但我似乎無法檢查相同循環中的其他值。

+0

鍵和值的類型是什麼? – Vidya

+0

@Vidya他們都是字符串,密鑰是唯一的 – null

+0

你能舉一個地圖和列表的例子以及你想從他們得到什麼? – Psidom

回答

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,你想訪問。爲簡單起見,我使用了字符串和布爾值,但您也可以輕鬆地將上述示例用於您的用例。關於檢查地圖測試,您可以添加test.size mustEqual expectedSize,其中​​是val,這是您期望的集合的大小。

讓我知道你是否需要更多的澄清。我很樂意提供幫助。

相關問題