写Cucumber之前,先了解何谓 BDD(Behaviour-Driven Development) 以及什麽是 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 的写法搂!
参考来源:
相关工具的上手 1. javascript理解: 建议先入门 ( JavaScript 教程 ):J...
FF14里面有个系统叫时尚品监 每个礼拜都会有个主题穿搭风格,如果参加有超过80以上都会拿到还不错的...
这里要开始介绍 JS核心 首先要先来介绍 JS究竟是怎样运行的 其实浏览器(Browser)是看不懂...
大家梦想中的职涯都是逐步而稳定的进阶, 最後抵达成功的殿堂. 然而成功的职涯更像是攀岩, 一不小心...
我们在上一篇的Show.html 已经完成了资料查询呈现 这里要多出操作(比方像是编辑、删除...)...