圆圆网络 手游攻略 手游攻略 cucumber、cucumber可数还是不可数

cucumber、cucumber可数还是不可数

时间:2025-01-03 19:35:23 来源:互联网 浏览:65

Cucumber 黄瓜测试 BDD 从入门到精通

Cucumber 是 BDD(Behavior-Driven Development,行为驱动开发)的一个自动化测试工具,使用自然语言来描述测试用例,使得 非研发(QA、PM)也可以理解甚至编写 测试用例。

cucumber、cucumber可数还是不可数

  • 撰写时,应该要以 PM 也能理解 测试用例 为目标去编写 Cucumber

Gherkin 是 Cucumber 用来描述 测试用例 的语言,以下为关键字的用意与关联关系。

  • Given:新增 帐号abc@qq.com 、新增 概览1
  • Then:校验 帐号abc@qq.com 是否能查看到 概览1

可以在多个 Step 上共用同一个 "简单" 参数,且每一个 Example 都视为一个 Scenario

  • Gherkin 写在 .feature 文件中
  • Step 对应的逻辑 写在 .java 文件中

通过 Gherkin 语法上的描述,找到与 注解 value 值匹配的 Java 方法,将 Gherkin 与 Java 代码关联起来。

  • 当同时执行多个 Scenario 时,执行每个 Scenario 对应的 Java 文件都会被重新创建。
  • 不同的 Scenario 之间,不应该存在数据依赖(MySQL),如果存在依赖,将会使 Scenario 变得脆弱可以在 Backgroud,进行数据清理,来保证测试结果的正确性

school.cucumber.io/courses/tak…

B:Business Language。

  • Scenairo 中使用的词语应该使用【业务团队成员】能够理解的词语,否则将无法与业务团队成员互动。

R:Real Data。

  • Scenairo 中应该使用 具体、真实 的数据(不要用 1、2、3、A、B、C),有助于让场景变得生动,并及早揭示边界条件与基本假设。

I:Intention Revealing。

  • Scenairo 应该描述试图实现的意图,而不是描述程式将如何实现它的机制。
  • 确保每一行 Step 描述的是 意图 而非 机制。 (比如:创建帐号,就不要写成 "将帐号数据写入 user 表,并在 account_project 表绑定帐号与项目的关联")

E:Essential。

  • Scenairo 应该只保留必要的 Step,不直接促成结果的场景都应该被删除。
  • 任何不能增加读者对预期行为理解的场景,都不應該出现在文档中。

F:Focus。

  • 多数的 Scenairo 应该只专注于单一职责。

BRIEF

  • 建议将大多数的 Scenairo 限制在五行或更少,这将使它们更易于阅读与推理,并有助于避免 同时测试多个规则 或 增加额外细节。

school.cucumber.io/courses/tak…

  • 随时获得 你做的事情是否正确 的反馈
  • 你的 Feature 可以变成描述你 系统功能 的 线上文档
  • Scenairo 将会引导你的技术设计

school.cucumber.io/courses/tak…

  1. 在 Cucumber 中描述你想要实现的 Scenairo,把所有的 Step 串连起来,并运行 Cucumber 使其出现 失败 结果
  2. 持续实现 Step 与 API 的具体逻辑,并观察 API 是如何 失败 的,最终使 Scenairo 的结果变为 成功。
  3. 当测试通过后,对 API 实现进行 清理 与 优化(重构),使其更具可读性,并再次运行 Cucumber 保证重构后的结果正确。

以上为 测试驱动开发(TDD) 的 生命周期: Red、Green、Clean

  • 如果改坏了系统逻辑,你的测试用例会告诉你。

推荐:在研发进行技术设计前,再多加一个 测试用例评审 的环节,让 PM、QA、RD 一起参与,方便及早发现问题,也能增加技术设计时考量的全面性

参数化 可以与 表格化、列表化、对象化 混用

Cucumber 支持在 Java 注解 中使用 {关键字} 作为占位符。 在 Step 中直接写上参数,将在 Java 代码中,会把占位符对应的参数作为方法参数传递进去。

下方的 List - Map、List - List、Map - List 都是共用同一套 Gherkin 代码,也就是说,同一个 Gherkin 代码,Cucumber 可以根据不同的方法参数类型,自动进行转换

记得加上 @Transpose,告诉 Cucumber 需要进行数据转换

在封装方法上方,需要加上 @DataTableType 注解

方法参数中,直接指定 对象封装方法 返回的 对象类型,Cucumber 就能直接进行关联

DataTable 与 List 必须作为 Java 方法的最后一个参数

List<Map<String, String>> 必须作为最后一个方法参数

List 必须作为最后一个方法参数

指定注解的 value,可以指定 Hook 的运行范围,不指定则表示在全项目生效。 注解可以定义在项目中的任意位置。

如果同时定义了多个钩子方法,则会依照注解中 order 属性的顺序多次执行。

Gherkin 代码

Java 代码

最终结果

Gherkin 代码在不同的 Scenario 上,可以增加 自定义注解 作为标记

Java 代码Hook 注解的 value 值,可以用来指定,只有当 Scenario 上有该自定义注解时,才会执行 Hook 方法。

如果想将 Hook 方法在多个自定义注解下进行复用,可以通过 , 隔开,例如:@Before("@MyHook,@YourHook")

最终结果

  1. 所有 模版功能 只运行在 测试项目(project_id = 1) (避免有时要指定 project_id 有时又不需要的麻烦)
  2. 使用 Gherkin 参数化 的 字串 功能时,使用 单引号 将字串包裹 (考虑到模版参数可能出现 Json 字串,使用双引号会需要额外进行转译)
  3. 模版参数中,不要出现 id(包含 帐号id、角色id、职务id ... 等),应该改用 名称(用户名、角色中文名称、职务名称)去反查 (使用 id 将无可避免的出现要使用 上下文 将多个 Step 进行关联的问题,这将使测试用例变得脆弱,所以宁可用 名称 去反查 id,也不要直接指定 id)
  4. Gherkin 语法表格化的表头字段,使用 下滑线命名法 来命名
  5. 模版方法名称定义遵守以下规范 (当一个模版可能同时存在于 Given 与 When 时,以 When 为主)

随时注意编写的模版是否尽量符合第 2 大项的最佳实践

通常为 Given 的最后一步,比如 帐号 要绑定 角色,一定是先创建好 角色,再通过 新增帐号 进行绑定

(创建前自动删除原来的帐号、创建时允许指定角色)

as cool as a cucumber和黄瓜没有关系?真实的意思你猜得到吗

Cucumber是我们生活中常见的一种蔬菜——黄瓜。因其口感爽脆,又绿色健康,深受人们的喜爱,尤其是一些励志减肥的人。但如果你听到老外形容一个人为“as cool as a cucumber”,那你千万不要理解错了,他可不是说那个人像黄瓜一样冷冷酷酷的,而是说那个人面临困难时十分冷静,泰然自若,和calm的意思比较相似。

I was petrified to take the stage, but Bella was as cool as a cucumber.

我十分害怕上台,贝拉却十分镇定自若。

除此之外,类似于as+adj.+as……结构的习语还有很多,有的根据直译可以理解其含义,有的类似于“as cool as a cucumber”一样不能逐字翻译去理解,一起来看看吧。

as easy as ABC 十分容易;非常简单

也可以说为“as easy as pie”。

After so many years as an accountant, doing taxes is as easy as ABC for me.

做了这么多年的会计之后,报税对于我来说十分简单。

as busy as a bee 十分忙

这个非常容易理解了,直接翻译的意思为“像蜜蜂一样忙”,就是指人非常忙。

My mother is as busy as a bee in the morning.

我的妈妈早晨忙得团团转。

as plain as day 显而易见

Plain指“清楚的、明显的”,形容事物就像在大白天一样的清楚,显而易见。

It's plain as day that they like each other. they've been flirting all evening!

很显然他们十分喜欢对方。他们一整晚都在打情骂俏!

church mouse指的是“教堂里的老鼠”,因为教堂是供教徒们做礼拜的神圣之地,所以是不允许吃东西的,并且在古时候的教堂里是没有食物的,因此用来形容人一穷二白,十分贫穷。

Some people are as poor as church mice, but they are happy.

虽然有些人一贫如洗,但是却活得十分开心。

as strong as a horse 十分强壮

She got into weight lifting a couple years ago and is strong as a horse now!

她练习举重好几年了,现在十分强壮!

as white as a sheet 面色苍白

His face went as white as a sheet when he saw the burglar in his house.

当他看到家里的窃贼时,瞬间脸都白了。

用户评论

蝶恋花╮

我记得小时候经常吃黄瓜凉拌的!

    有13位网友表示赞同!

雁過藍天

啊,黄瓜真是夏天的好伙伴!冰冰凉凉的太舒服了。

    有11位网友表示赞同!

眉黛如画

觉得是可数吧?毕竟它是独立的个体嘛?

    有13位网友表示赞同!

遗憾最汹涌

我妈说黄瓜要看情况,有时候可以算作单独的存在,有时候就是整体。

    有18位网友表示赞同!

一点一点把你清空

比如“两根黄瓜”和“一盘黄瓜”的区别就很明显。

    有12位网友表示赞同!

拉扯

我也觉得黄瓜应该可数,因为我们平时会用数字来表达数量吧?

    有5位网友表示赞同!

怀念·最初

中文里很多东西都是看语境才能决定是可数还是不可数的呀!

    有17位网友表示赞同!

坠入深海i

要考虑具体情况下怎么说更自然才对。

    有19位网友表示赞同!

盲从于你

像这种语言小知识挺有意思的,可以让我们在用语言的时候更加准确吧!

    有19位网友表示赞同!

冷落了♂自己·

我还是比较习惯用“一根黄瓜”这个表达。

    有17位网友表示赞同!

回忆未来

我觉得应该多看一些例句才能更好地理解哦~

    有10位网友表示赞同!

封锁感觉

这题考点还挺有趣的,我得去查查相关用法。

    有9位网友表示赞同!

金橙橙。-

看来可数和不可数的界限有时候很难划分呢!

    有18位网友表示赞同!

白恍

语言学真是太深奥了!

    有18位网友表示赞同!

七级床震

我还记得以前老师说过类似这个问题,但具体的内容我记不太清了。

    有12位网友表示赞同!

墨染天下

黄瓜沙拉是我的最喜欢!

    有5位网友表示赞同!

孤独症

这种类型的文章总是让我觉得很有收获。

    有10位网友表示赞同!

红玫瑰。

学习语言真是太有意思了~

    有11位网友表示赞同!

晨与橙与城

期待看到答案!

    有9位网友表示赞同!

烟雨离殇

我要去查一下词典看看是怎么定义的。

    有6位网友表示赞同!

标题:cucumber、cucumber可数还是不可数
链接:https://yyuanw.com/news/gl/35912.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
天地劫幽城再临归真4-5攻略:第四章归真4-5八回合图文通关教学

天地劫幽城再临归真4-5攻略:第四章归真4-5八回合图文通关教学[多图],天地劫幽城再临归真4-5怎么样八回合内通

2025-01-03
航海王热血航线艾尼路怎么玩?艾尼路加点连招攻略大全

航海王热血航线艾尼路怎么玩?艾尼路加点连招攻略大全[多图],航海王热血航线艾尼路怎么加点?艾尼路怎么连招?关

2025-01-03
坎公骑冠剑国际服怎么玩?国际服新手攻略

坎公骑冠剑国际服怎么玩?国际服新手攻略[多图],坎公骑冠剑国际服的玩法是什么样的?关于游戏中的一些新手玩法

2025-01-03
王者荣耀鸿运6+1地狱之眼怎么抽?鸿运抽奖地狱之眼概率获取攻略

王者荣耀鸿运6+1地狱之眼怎么抽?鸿运抽奖地狱之眼概率获取攻略[多图],王者荣耀鸿运抽奖活动的奖池中还有传说

2025-01-03