2012-11-09 85 views
0

代碼:如何將Cucumber DataTable映射到Scala?

val someVariableIWantToSave //I do not know what to do here 

When("""^this request is sent to the XYZ service:$"""){ (requestData:DataTable) => 
//// we might want to do somethign else with Datatable in the mapping of the  feature, nothing yet 
var someVariableIWantToSave = requestData.asMaps() 

} 

我的意思是asMaps方法返回一個列表[地圖[字符串,字符串]]類型,我想將它保存到someVariableIWantToSave VAL,所以我可以在其他步驟中使用它,但我不知道該如何初始化它以及如何在沒有大量代碼噪音的情況下正確映射它。

回答

0

因爲val s不能更改,所以不能「保存某物到val」。由於您只是在此步驟中獲取請求數據,而不是其他人員,因此您應該只有

When("""^this request is sent to the XYZ service:$"""){ (requestData:DataTable) => 
    val someVariableIWantToSave = requestData.asMaps() 
    // do something with someVariableIWantToSave 
} 
+0

我想使用請求數據在其他步驟 –

0

這是我的解決方案。由於這只是測試代碼中使用變種是確定這裏..我將其設置爲全球的測試,然後其他步驟可以用它...

var request: java.util.List[java.util.Map[String, String]] = _ 

When("""^this request is sent to the blah service:$"""){ (requestData:DataTable) => 
request = requestData.asMaps() 
} 

`