我的黄瓜特征中有此数据:
| deal | mir | stp1 | stp2 | date | mnt |
| 1255 | 120 | 1 | 1 | 2018-01-01 | 120 |
在这种情况下我读的
case class test1 (deal : String, mir: String, stp1:String, stp2: String, date: Sttring, mnt:Option[String])
在我的步骤定义中,我这样读:
Given("""^I have this data$""") {dt: DataTable =>
val dt_lists = dt.asList(classOf[test1 ])
}
问题:当我像这样在数据中输入Option [String]的“ mnt”时:
| deal | mir | stp1 | stp2 | date | mnt |
| 1255 | 120 | 1 | 1 | 2018-01-01 | 120 |
我有一个错误:Cucumber.runtime.CucumberException:Cucumber.deps.com.thoughtworks.xstream.converters.ConversionException:无法构造scala.Option:scala.Option:无法构造scala.Option
当我从数据中检索“ mnt”时:
| deal | mir | stp1 | stp2 | date |
| 1255 | 120 | 1 | 1 | 2018-01-01 |
在这种情况下,程序可以正常工作。
欢迎任何帮助,谢谢
答案 0 :(得分:1)
我很惊讶为什么要将dataTable
转换为case class
。如果您打算使用每个字段,则可以执行以下操作
`
Then("""^tGiven("""^I have this data$""") { (fieldNames: DataTable) =>
fieldNames.asList(classOf[String]).asScala.foreach { fieldName =>
// you will have all the field names here like deal,mir ,stp1 ,stp2,date,mnt
}
}