首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理Gherkin step参数本身有一个字符串的情况,该字符串是步骤的一部分

如何处理Gherkin step参数本身有一个字符串的情况,该字符串是步骤的一部分
EN

Stack Overflow用户
提问于 2017-06-28 17:32:52
回答 2查看 1.2K关注 0票数 0

当我传递的参数之一是步骤语句本身的一部分时,我正面临一个python行为的问题,正在解析一个步骤定义。

以下是步骤定义

代码语言:javascript
运行
复制
@when(u'I set the value of {setting} to {value} in configuration')

def **step_imp**(context, setting, value):
 print ("Setting:", setting , " Value:", value)    
 pass

我的特征样本看起来就像

代码语言:javascript
运行
复制
Scenario: Configuration Update
Given I can access the configuration file
When I set the value of **CDROM Drive** to **G:** in configuration
When I set the value of **USB TO IGNORE** to **USB2.0** in configuration

它适用于第一个when语句。但是对于第二个When语句,行为解析器解析并给出参数{ But }作为USB和{value}作为USB2.0。由于 " TO“是步骤本身的一部分,所以在解析USB以忽略时,行为解析器忽略”TO“中的单词。

有没有可能的解决方案而不忽略参数中的空格?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-19 23:53:05

是的,只需使用双引号,而不是围绕在功能文件中的参数周围的星号,而且(这也是使' to‘出现的区别所在),将双引号放在步骤文件中的花括号周围,例如@when(u'I set the value of "{setting}" to "{value}" in configuration')。我也不认为你需要**step_imp**周围的星号。但我对蟒蛇的行为很有兴趣。

如果有人出于与我相同的理由在这里结束,,如何在参数中避免双引号。在双引号之前,您似乎只是使用了一个正斜杠,\。这是我第一次尝试,但还有其他原因导致我的测试得到了一个解析错误,而且我找不到任何人明确地说它是一个正斜杠,可以在任何地方逃逸,所以想要将它记录在某个地方,以防其他人最终陷入白费力气。

代码语言:javascript
运行
复制
  Scenario: If we enter an xss attack it should not work on another page
  Given I am on "/example-page"
  When I set current element to search field
   and I send the attack "\">alert(1)"
  Then I am on "/?s=%5C\"><%2Flabel><h1+id%3DXSS>Hello<%2Fh1><label><input+#search-form"  
  and there should not be an element with this locator "h1#XSS"
票数 1
EN

Stack Overflow用户

发布于 2017-07-13 23:37:23

用引号包围您的步骤参数?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44809162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档