Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >黄瓜表达式:我如何拥有严格的、多个单词的替代文本?

黄瓜表达式:我如何拥有严格的、多个单词的替代文本?
EN

Stack Overflow用户
提问于 2017-05-11 23:02:43
回答 3查看 2.6K关注 0票数 2

我正在尝试将基于RegExp的Cucumber v1步骤定义转换为基于Cucumber表达式的Cucumber v2.0.0-rc.9步骤定义。我有几个使用正则表达式的步骤定义,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/^I (?:am on|go to) the "([^"]*)" page$/

这样,我就可以在我的功能文件中编写以下内容之一:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I am on the "Login" page
I go to the "Home" page

我想切换到黄瓜表达式,这样我就可以开始使用自定义参数,但我找不到复制(?:am on|go to)的好方法。我想到的最好的办法就是使用多个alternative texts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I am/go on/to the "{captureString}" page

然而,我不喜欢这种方法的是,它允许编写像下面这样的无意义的步骤:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I am to the "Login" page

我还尝试使用包含|字符的单个optional text,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I (am on|go to) the "{captureString}" page

但是cucumber-expressions javascript故意使用escapes the | character,因此生成的RegExp如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/^I (?:am on\|go to)? the "([^"]*)" page$/

有没有办法使用Cucumber表达式拥有一个由多个单词组成的替代文本组?

EN

回答 3

Stack Overflow用户

发布于 2019-06-12 14:59:22

我最终使用了多个可选文本:

I (am on)(go to) the "{captureString}" page这个解决方案仍然不像我希望的那样严格,因为它将像下面这样匹配字符串:

I the "Login" page

I am ongo to the "Home" page

但我发现Cucumber表达式本身比处理多个可选文本更具可读性。对于“正确”的方式,我仍然对其他建议持开放态度。

在变量之间添加斜杠'/‘将消除触发I am ongo to the "Home" page的可能性:

I (am on)/(go to) the "{captureString}" page

票数 3
EN

Stack Overflow用户

发布于 2017-05-12 18:42:12

我最终选择了多个可选文本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I (am on)(go to) the "{captureString}" page

这个解决方案仍然不像我希望的那样严格,因为它将像下面这样匹配字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I  the "Login" page
I am ongo to the "Home" page

但我发现Cucumber表达式本身比处理多个可选文本更具可读性。对于“正确”的方式,我仍然对其他建议持开放态度。

票数 0
EN

Stack Overflow用户

发布于 2017-05-16 15:09:29

另一种选择是编写您的步骤,以便它们描述您所做的事情,而不是您是如何做到的

Given I am logged in

Give I am a visitor

并且通常避免使用正则表达式或表达式。就我个人而言,我更希望

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Given 'I am logged in' do 
  login user: @i
end

Given 'I have logged in' do
  login user: @i
end

而不是只有一个表达式来做这两件事。我的理由是:

  1. 更容易搜索调用和复制的步骤定义和功能
  2. 它与调用和委托的step bodies结合得很好,而不是做事情的step bodies。
  3. 更简单。我总是喜欢简单和有点冗长,而不是复杂和简洁。

我从来没有任何步骤来说明我在哪个页面上,因为这就是我如何做的事情,而场景应该只是关于什么和为什么。

无论如何,希望这会有一些用处。

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

https://stackoverflow.com/questions/43926907

复制
相关文章
使用Python实现子区域数据分类统计
目录 前言 geopandas简介 子区域数据分类统计 总结 一、前言        最近碰到一个需求,需要统计某省内的所有市的某数据分布情况信息。现有该省的数据分布情况以及该省的行政区划数据。我通过geopandas库实现了这一需求,在这里简单记录之,供需要的人借鉴。 二、geopandas简介 想必大家对pandas都不陌生,它是一个开源的强大的Python数据分析工具。pandas确实做到了灵活、快速、高效的进行数据处理,而geopandas是在pandas的基础上添加了对空间数据的支持,实现了读取空
魏守峰
2018/04/28
1.5K0
使用Python实现子区域数据分类统计
当时是为了统计县域内的植被覆盖量,折腾了一段时间,解决了这个问题。最近,又碰到了一个类似的需求,也需要统计某个小范围内的数据。简单来说,这个需求是将两个 shp 文件的任意两个对象做相交判断,最后形成一个新的空间对象集合,最后对此集合进行简单统计分析即可。
魏守峰
2018/12/21
1.2K0
geopandas,用python画地图原来这么简单!
pandas应该是大家非常熟悉的Python第三方库,其主要用于数据整理和分析,这次来介绍pandas的一个近亲-geopandas
朱卫军 AI Python
2022/04/02
3.1K0
geopandas,用python画地图原来这么简单!
geopandas 0.10版本重磅新特性一览
❝本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 就在前不久,我们非常熟悉的Python地理空间分析库geopandas更新到了0.10.0版本,而伴随最近一段时间其针对新版本的一些潜在bug进行的修复,写作本文时最新的正式版本为0.10.2。此次0.10.x版本为我们带来了诸多令人兴奋的新功能新特性,本文就将带大家一睹其中一些比较重要的内容😋。 2 geopandas 0.10版本重要新
朱卫军 AI Python
2022/04/03
8490
geopandas 0.10版本重磅新特性一览
左手用R右手Python系列12——空间数据可视化与数据地图
以前我一直觉得Python的绘图工具与R语言ggplot2比起来,不够优雅,这也是我一直坚定的选择使用R+ggplot2深入的学习数据可视化的原因,ggplot2在坐标系的整合与兼容性和扩展性上确实技高一筹,所以ggplot2成了可视化的巨无霸,成了可视化界的微信,不仅自身生态日趋完善,而且还有众多的开发者为其开发辅助功能包(你可以理解为依附于微信的小程序)。 最近偶然在学习Python可视化的过程中,了解到了geopandas,确实第一眼看着很眼熟,或许你第一眼就能把它与pandas联系起来。的确,它跟
数据小磨坊
2018/04/11
2.2K0
左手用R右手Python系列12——空间数据可视化与数据地图
利用python把shp文件写入PostgresSQL数据库
把shp文件写入pg数据库。注意:shp文件含点、线、面(‘POINT’,'LINESTRING','POLYGON')~这是重点。
一个有趣的灵魂W
2020/09/15
2.5K0
利用python把shp文件写入PostgresSQL数据库
构建自己的地理信息空间数据库及与客户端简单交互
最近研究了下postgresql数据库及其空间地理信息拓展插件——postgis。
数据小磨坊
2018/07/25
6.1K0
构建自己的地理信息空间数据库及与客户端简单交互
基于geopandas的空间数据分析——空间计算篇(下)
在基于geopandas的空间数据分析系列文章第8篇中,我们对geopandas开展空间计算的部分内容进行了介绍,涉及到缓冲区分析、矢量数据简化、仿射变换、叠加分析与空间融合等常见空间计算操作,而本文就将针对geopandas中剩余的其他常用空间计算操作进行介绍。
朱卫军 AI Python
2022/04/03
1.3K0
基于geopandas的空间数据分析——空间计算篇(下)
(数据科学学习手札129)geopandas 0.10版本重要新特性一览
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   就在前不久,我们非常熟悉的Python地理空间分析库geopandas更新到了0.10.0版本,而伴随最近一段时间其针对新版本的一些潜在bug进行的修复,写作本文时最新的正式版本为0.10.2。此次0.10.x版本为我们带来了诸多令人兴奋的新功能新特性,本文就将带大家一睹其中一些比较重要的内容😋。 2 geopandas 0.10版本重要新
Feffery
2021/10/29
1K0
(数据科学学习手札129)geopandas 0.10版本重要新特性一览
(数据科学学习手札88)基于geopandas的空间数据分析——空间计算篇(下)
  在基于geopandas的空间数据分析系列文章第8篇中,我们对geopandas开展空间计算的部分内容进行了介绍,涉及到缓冲区分析、矢量数据简化、仿射变换、叠加分析与空间融合等常见空间计算操作,而本文就将针对geopandas中剩余的其他常用空间计算操作进行介绍。
Feffery
2020/06/28
1.5K0
python可视化 | 地理桑基图的绘制方法
我回答目前常用的库包不能直接绘制这样的桑基图,我错了,应该回答是目前常用的库包不能绘制这样漂亮些的桑基图。
郭好奇同学
2021/05/28
1.7K0
python可视化 | 地理桑基图的绘制方法
气象绘图——白化杂谈
什么是白化?我在一年前也是头一次接触到这个词语,其实就是将你不需要的部分的等值线、等值线填色、风场、流场等挖去。目前气象领域流行的是花式利用地图shp文件进行操作,达到白化的目的。
自学气象人
2023/06/21
1.2K0
气象绘图——白化杂谈
(数据科学学习手札77)基于geopandas的空间数据分析——文件IO
  在上一篇文章中我们对geopandas中的坐标参考系有了较为深入的学习,而在日常空间数据分析工作中矢量文件的读入和写出,是至关重要的环节。
Feffery
2020/02/26
2.1K0
空间数据可视化笔记——simple features空间对象基础
是不是感觉被封面图和不明觉厉的题目给骗进来了哈哈哈,今天这篇是理论篇,没有多少案例,而且还很长,所以静不下心的小伙伴儿可以先收藏着,时间充裕了再看。 ---- 当今互联网和大数据发展的如此迅猛,大量的运营与业务数据需要通过可视化呈现来给商业分析人员提供有价值的决策信息,而地理信息与空间数据可视化则是可视化分析中至关重要而且门槛较高的一类。 通常除了少数本身具备强大前端开发能力的大厂之外,很多中小型企业在内部预算资源有限的情况下,并不具备自建BI和完整可视化框架的能力。需要借助第三方提供的开源可视化平台或者
数据小磨坊
2018/04/11
1.6K0
空间数据可视化笔记——simple features空间对象基础
动手学geopandas地理数据分析
如何用Python分析诸如各国人口和GDP数据,各省市房价等地理相关数据,并在地图上优雅地展示你的结果?你需要geopandas!?? 一,GeoPandas总体介绍 geopandas 是pand
lyhue1991
2021/04/07
1.5K0
动手学geopandas地理数据分析
geotrellis使用(四十二)将 Shp 文件转为 GeoJson
原因很多,最重要的原因是我转行了。是的,我离开了开发岗位,走向了开发的天敌-产品经理。虽然名义上是产品经理,但是干的事情也很杂,除了不写代码,其他的都干,经常还要加个小班,所以就没那么多时间研究技术上的东西,机械键盘上已经落下了一层薄薄的灰尘。但是自己确实又爱码农这一行,上班看着同事畅快的敲着代码,心里就有点痒,所以下班没事仍旧自己瞎捉摸,这不就总结出来今天这篇文章。
魏守峰
2018/09/21
1.4K0
Python地信专题 | 基于geopandas的空间数据分析-文件IO篇
在上一篇文章中我们对geopandas中的坐标参考系有了较为深入的学习,而在日常空间数据分析工作中矢量文件的读入和写出,是至关重要的环节。
朱卫军 AI Python
2022/04/02
2.3K0
Python地信专题 | 基于geopandas的空间数据分析-文件IO篇
(数据科学学习手札130)利用geopandas快捷绘制在线地图
  在上一篇文章中,我为大家介绍了不久前发布的geopandas 0.10版本的诸多新特性,而其中介绍到的地图可视化新方法explore()只是一带而过,没有仔细为大家介绍其功能用法。今天的文章我就将为大家详细介绍新版geopandas中,利用explore()制作在线地图可视化的方法:
Feffery
2021/11/11
1.7K0
(数据科学学习手札130)利用geopandas快捷绘制在线地图
geopandas轻松绘制交互式在线地图
在上一篇文章中,我为大家介绍了不久前发布的geopandas 0.10版本的诸多新特性,而其中介绍到的地图可视化新方法explore()只是一带而过,没有仔细为大家介绍其功能用法。今天的文章我就将为大家详细介绍新版geopandas中,利用explore()制作在线地图可视化的方法:
朱卫军 AI Python
2022/04/03
1.8K0
geopandas轻松绘制交互式在线地图
【Nginx】磁盘文件写入飞地发
文章继续。什么时候Nginx当用户请求一个文件,这将无法读取该文件的内容加载到内存,然后从内存发送,但电话sendfile况下,从内核直接发送出去。这样做显然效率要更高。Nginx也为我们封装好了一系列的接口。以下就来说明怎样发送一个磁盘文件给client。
全栈程序员站长
2022/07/05
9450
【Nginx】磁盘文件写入飞地发

相似问题

CSV文件的GeoPandas.GeoDataFrame无法写入数据

239

使用GeoDataFrame .merge GeoPandas时空GeoPandas

11

使用Geopandas选择.shp文件的特定区域

129

如何在不写入磁盘的情况下下载解密文件

10

将geopandas.geodataframe转换为geojson

114
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文