Scala 如何在多行中实现步骤定义?
我正在使用Scala、Cucumber、Gherkin语言进行自动化测试。我的功能文件中有以下场景,用小黄瓜语言编写: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多个
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