Scala 如何在多行中实现步骤定义?

Scala 如何在多行中实现步骤定义?,scala,cucumber,gherkin,Scala,Cucumber,Gherkin,我正在使用Scala、Cucumber、Gherkin语言进行自动化测试。我的功能文件中有以下场景,用小黄瓜语言编写: Scenario Outline: Do something When I do something Then result should have field1 as "<filed_1>", field2 as "<filed_2>" and filed3 as "<filed_3>" 这里是然后是语句,在一行中有120多个

我正在使用Scala、Cucumber、Gherkin语言进行自动化测试。我的功能文件中有以下场景,用小黄瓜语言编写:

Scenario Outline: Do something
  When I do something  
  Then result should have field1 as "<filed_1>", field2 as "<filed_2>" and filed3 as "<filed_3>"
这里是然后是语句,在一行中有120多个字符,我必须将其一分为二。我不应该更改功能文件

当断开时,将分成两行

Then("""^result should haveresult should have field1 as "([^"]*)", 
      | field2 as "([^"]*)" and filed3 as "([^"]*)"$""".stripMargin)
它表示您可以使用以下代码片段实现缺少的步骤:

Then("""^result should have field1 as "([^"]*)", field2 as "([^"]*)" and filed3 as "([^"]*)"$"""){ (arg0:String, arg1:String, arg2:String) =>
  //// Write code here that turns the phrase above into concrete actions
  throw new PendingException()
} 

我不确定我应该采取哪种方法来打破然后在多行中打破。感谢您的帮助。

您可以将
字符串拆分为两个,然后将它们添加到一起:

Then("""^result should have field1 as "(.*)", field2 as "(.*)" """ + 
  """and filed3 as "(.*)"$""") { (arg0:String, arg1:String, arg2:String) =>

  //etc
}
这与要拆分然后相加的任何
字符串相同:

"""1234567890""" == """12345""" + """67890""" // true

嗯,我也试过了,得到了“你可以实现缺少的步骤”的小黄瓜/黄瓜测试,使用基本的正则表达式检查运行(因此,
^
$
(.*)
,等等)。听起来您的StepDef与功能文件不匹配。在原始问题中,您声明
Then
块是
Then(“^result should haveresult should havefield1…”
。重复的
结果should haveresult should
是否有打字错误?我的错。更新了当时的问题
"""1234567890""" == """12345""" + """67890""" // true