Day18 测试写起乃 - Cucumber 前置作业

写Cucumber之前,先了解何谓 BDD(Behaviour-Driven Development) 以及什麽是 Gherkin 语法?

BDD 行为驱动开发

简单来说就是在写测试前先写测试规格书。这份测试规格会用更接近以口语的方式来描述软件功能和测试案例。而这份规格除了事叙述文件之外,而是一份「可以被执行的规格」,也就是可以被转成自动化测试。

Gherkin 语法

其实,Gherkin语法就是使用 Given, when, then... 等关键字来撰写User Story。让客户、PM、开发人员都能看懂的文件,降低沟通成本
最重要的是它是支援多国语言!团队可以用自己喜欢的语言,例如英文、中文、日文、韩文等。

功能(Feature): 一句话简介这份规格书所涵盖的软件功能
 背景: 可以在这里写许多前置作业
  假如: 假设我....
  而且: 前置作业 1
  而且: 前置作业 2
  而且: 前置作业 3

 场景(Scenario): 测试案例 1
  假如(Given) 假设我....
  当(When) 当我做了某件事...
  那麽(Then) 结果应该要看到或得到...

 场景(Scenario): 测试案例 2
  假如(Given) 假设我....
  当(When) 当我做了某件事...
  那麽(Then) 结果应该要看到或得到...
英文关键字 中文关键字
feature 功能
background 背景 剧本
scenario 场景
scenario_outline 场景大纲 剧本大纲
examples 例子
given 假如假设假定
when
then 那麽
and 而且 并且 同时
but 但是

通常一个 场景(scenario) 只会搭配一个 当(when)

安装

group :test do
  gem 'cucumber-rails', require: false
  # database_cleaner is not mandatory, but highly recommended
  gem 'database_cleaner'
end

当然如果要指定版本也是可以的我们目前已载官网的为主

rails generate cucumber:install

生成以下 Cucumber 档案

...略
create  config/cucumber.yml
create  script/cucumber
 chmod  script/cucumber
create  features/step_definitions
create  features/step_definitions/.gitkeep
create  features/support
create  features/support/env.rb
 exist  lib/tasks
create  lib/tasks/cucumber.rake

在 cucumber 里 DatabaseCleaner 为预设,如果想关闭此预设行为可以下以下指令

# features/support/env.rb
# ...
Cucumber::Rails::Database.autorun_database_cleaner = false

明天就可以来讲 cucumber 的写法搂!

参考来源:

Cucumber
Cucumber-Rails


<<:  Day 18 - Dark Mode 使用

>>:  第3车厢-学会切版保证班?CSS的宝藏图

【Day4】前端React +Antd 的环境(Docker化)建立 (中)

相关工具的上手 1. javascript理解: 建议先入门 ( JavaScript 教程 ):J...

[DAY 27]推特推送到discord频道

FF14里面有个系统叫时尚品监 每个礼拜都会有个主题穿搭风格,如果参加有超过80以上都会拿到还不错的...

JS 如何运行 DAY45

这里要开始介绍 JS核心 首先要先来介绍 JS究竟是怎样运行的 其实浏览器(Browser)是看不懂...

证照为我们的职涯提供基本的防护

大家梦想中的职涯都是逐步而稳定的进阶, 最後抵达成功的殿堂. 然而成功的职涯更像是攀岩, 一不小心...

.Net Core Web Api_笔记25_api结合EFCore资料库操作part3_产品分类资料的编辑与删除(EF的更新写法怎麽这麽多种!如何观察EF产生的SQL)

我们在上一篇的Show.html 已经完成了资料查询呈现 这里要多出操作(比方像是编辑、删除...)...