6

我想在场景大纲的示例部分使用多行字符串。怎么做 ?

例如

Scenario Outline:
  Given something
  When `<action>` happens
    I should get elaborative `<duuh>`
  Examples:
    |action|duuh|
    |"""
    tututuut
    """|"""blablabla m
    ultiline"""|

它看起来不干净也不行

4

3 回答 3

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
}

如果您在文件中设置“””三引号,则字符串结果也将包含它。

于 2017-08-02T13:28:17.537 回答
0

您是否考虑过在字符串中使用 \n 来表示回车?

于 2011-03-11T19:48:30.527 回答
0

我优先考虑黄瓜的输出,而不是小黄瓜的输入,虽然一等奖是为了两者都漂亮。所以多行示例值对我来说没有意义,因为它们绝对会破坏黄瓜输出。

Cucumber 鼓励带有文档字符串的多行数据的可读输出。它鼓励具有场景大纲的数据矩阵的可读输出。我不认为它鼓励多行数据矩阵的可读输出。

如果你能想出很好的例子来说明在这种情况下输出的样子,它们可能会在Cukes 论坛上受到好评。

或者,如果您要做的只是在 Cucumber 功能中迭代多行数据,请为多行数据提供助记符名称,在Examples您的矩阵中提供这些助记符Scenario Outline,并将助记符视为夹具文件的名称您阅读胶水代码中的实际数据。

于 2015-09-17T11:45:41.377 回答