黄瓜斯卡拉无法构造斯卡拉选项

时间:2018-10-22 14:02:33

标签: scala cucumber

我的黄瓜特征中有此数据:

| 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 | 

在这种情况下,程序可以正常工作。

欢迎任何帮助,谢谢

1 个答案:

答案 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 
        }
      }