Cucumber 黄瓜场景大纲:传递空字符串“&引用;作为示例表中的值

Cucumber 黄瓜场景大纲:传递空字符串“&引用;作为示例表中的值,cucumber,string,cucumber-jvm,Cucumber,String,Cucumber Jvm,我有一个cucumber场景大纲,在这个示例表中,我希望传递一个空字符串(“”)和换行符(\n\n\n)作为值。我想编辑一个文本字段,我正在删除该字符串,并希望传入空字符串或换行符。我想发送此值并按enter键。这看起来像这样。sendKeys(值+“\n”)。在示例表中,仅将值留空并传递\n\n\n不起作用。文本字段中的值未更改。 这是场景大纲的样子: Scenario Outline: Do not accept erroneous input as group conversation n

我有一个cucumber场景大纲,在这个示例表中,我希望传递一个空字符串(“”)和换行符(\n\n\n)作为值。我想编辑一个文本字段,我正在删除该字符串,并希望传入空字符串或换行符。我想发送此值并按enter键。这看起来像这样。sendKeys(值+“\n”)。在示例表中,仅将值留空并传递\n\n\n不起作用。文本字段中的值未更改。
这是场景大纲的样子:

Scenario Outline: Do not accept erroneous input as group conversation name (only spaces and break lines)
Given I Sign in using login <Login> and password <Password>
And I see Contact list with name <Name>
And I create group chat with <Contact1> and <Contact2>
When I open conversation with <Contact1>, <Contact2>
And I open Conversation info
And I set name <NewName> for conversation
Then I do not see conversation <NewName> in contact list
And I see Contact list with name <Contact1>, <Contact2>

Examples: 
  | Login   | Password    | Name    | Contact1    | Contact2    | NewName       |
  | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 |               |
  | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 | \n\n\n\n      |
场景大纲:不接受错误输入作为组对话名称(仅空格和换行符)
假设我使用登录名和密码登录
我看到了有名字的联系人名单
我与和创建群聊
当我开始与你交谈时,
我打开对话信息
我为对话定下了名字
那么我在联系人列表中看不到对话
我看到有名字的联系人名单,
示例:
|登录|密码|姓名|联系人1 |联系人2 |新姓名|
|aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 ||
|aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 | \n\n\n|
如何传递值?
当我只是传递硬编码的值时,它就工作了。textfield至少会被值替换,但我希望它作为占位符出现。
硬编码版本:

Scenario Outline: Do not accept erroneous input as group conversation name (only spaces)
Given I Sign in using login <Login> and password <Password>
And I see Contact list with name <Name>
And I create group chat with <Contact1> and <Contact2>
When I open conversation with <Contact1>, <Contact2>
And I open Conversation info
And I set name     for conversation
Then I do not see conversation     in contact list
And I see Contact list with name <Contact1>, <Contact2>

Examples: 
  | Login   | Password    | Name    | Contact1    | Contact2    |
  | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 |

Scenario Outline: Do not accept erroneous input as group conversation name (line breaks)
Given I Sign in using login <Login> and password <Password>
And I see Contact list with name <Name>
And I create group chat with <Contact1> and <Contact2>
When I open conversation with <Contact1>, <Contact2>
And I open Conversation info
And I set name \n\n\n\n\n for conversation
Then I do not see conversation \n\n\n\n\n in contact list
And I see Contact list with name <Contact1>, <Contact2>

Examples: 
  | Login   | Password    | Name    | Contact1    | Contact2    |
  | aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2 |
场景大纲:不接受错误输入作为组对话名称(仅限空格)
假设我使用登录名和密码登录
我看到了有名字的联系人名单
我与和创建群聊
当我开始与你交谈时,
我打开对话信息
我为对话定下了名字
那么我在联系人列表中看不到对话
我看到有名字的联系人名单,
示例:
|登录|密码|姓名|联系人1 |联系人2|
|aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2|
场景大纲:不接受错误输入作为组对话名称(换行符)
假设我使用登录名和密码登录
我看到了有名字的联系人名单
我与和创建群聊
当我开始与你交谈时,
我打开对话信息
我为对话设置了名称\n\n\n\n
然后我在联系人列表中看不到对话\n\n\n\n
我看到有名字的联系人名单,
示例:
|登录|密码|姓名|联系人1 |联系人2|
|aqaUser | aqaPassword | aqaUser | aqaContact1 | aqaContact2|

有什么想法吗?谢谢

您只需在功能定义中的“”之间添加
。例如:

And I set name "<NewName>" for conversation

希望能有所帮助

谢谢,我会尝试一下……同时找到一个不同的解决方案。因此,我将unicode字符传递给空格并对其进行转义(\\u0020)。我有一个Stringparser,它对其进行unescape并将其设置为name(name=Stringparser.unescapeString(name);)。这对我有用,但我会查看你的tipp。谢天谢地。但我认为我的解决方案更简单。此外,与IDE的集成(在我的例子中是IntelliJ)期望“”链接每个步骤功能文件java类。试试看,祝你好运!这是可行的,但更多的是针对cucumber中缺少的功能的一种解决方法。。嗨@julesmummdry!你最终使用我的解决方案了吗?如果是这样的话,如果有帮助的话,也许你可以将答案标记为接受
   @And("^And I set name \"([^\"]*)\" for conversation$")
   public void And_I_set_name_for_conversation(String newName) throws Throwable {
      ...
   }