我想在The Scenario Outline的Examples部分中使用多行字符串。 怎么做?
例如
Scenario Outline:
Given something
When `<action>` happens
I should get elaborative `<duuh>`
Examples:
|action|duuh|
|"""
tututuut
"""|"""blablabla m
ultiline"""|
它看起来不干净既不起作用
答案 0 :(得分:1)
我优先考虑黄瓜输出,而不是Gherkin 输入,尽管一等奖是两个都很漂亮。所以多行示例值对我来说没有意义,因为它们绝对破坏了黄瓜输出。
Cucumber鼓励使用doc strings的多行数据输出可读。它鼓励使用scenario outlines的数据矩阵的可读输出。我不认为它鼓励多行数据矩阵的可读输出。
如果您能够提供有关输出在这种情况下的外观的很好的示例,它们可能会在Cukes forum上得到好评。
或者,如果您要尝试的只是迭代Cucumber特征中的多行数据,请为多行数据提供助记符名称,并在Examples
矩阵中提供这些助记符。Scenario Outline
并将助记符视为您为胶水代码中的实际数据读取的夹具文件的名称。
答案 1 :(得分:1)
我做的是将文件中的长字符串分开(在我的例子中是json的片段),当我需要字符串时,我只需加载所需的文件。
我是用Grails做的,但应该非常相似:
读取文件的方法
static String getMockJsonFile(String fileName){
new File("${BOOKING_JSON_FILES_PATH}${fileName}.json").text
}
Json文件
"collectionSummary": {
"attempts": [
{
"collectionMethod": {
"creditCardCollectionMethod": {
"id": 2,
"collectionMethodType": "CREDITCARD",
"creditCardType": {
"code": "CA",
"name": "Master Card Credit"
}
}
},
"billingCurrency": "EUR"
}
],
"creationDate": "2017-05-30 14:46:19",
"currency": "EUR",
"collectedAmount": 9.1
}
如果在文件中设置“”三重引号,则字符串结果也会包含它。
答案 2 :(得分:0)
您是否考虑在字符串中使用\ n来表示回车?