@Author : Terry.Lee
@Time : 2019-10-24 12:16
1. python3安裝behave庫
pip3 install behave
2. 執行此命令查看中英關鍵字對照:
behave --lang-help zh-CN
Translations for Chinese simplified / 簡體中文
And: 而且<
Background: 背景
But: 但是<
Examples: 例子
Feature: 功能
Given: 假如<
Scenario: 場景
Scenario Outline: 場景大綱
Then: 那麼<
When: 當<
3. step裝飾器的關鍵字
__all__ = [
"given", "when", "then", "step", # 首選的寫法
"Given", "When", "Then", "Step" # 同樣支持這種寫法
]
[Given]
在用戶或外部系統對被測系統做交互之前,使被測系統處於一個可知的狀態。在givens中要避免涉及用戶交互的操作。
在use case中,givens可以被理解爲前置條件precondition。也可以在Given中使用table來設置一些數據
[When]
描述用戶或外部系統施展的關鍵行爲。這個交互行爲會引起系統狀態的變化
[Then]
觀察結果。這個觀察的結果應該與feature描述的用戶價值business value/benefit相關聯。這個結果也應該是一個系統產生的
具體的結果而不是對用戶不可見,埋藏得很深的結果。對用戶不可見的結果也許會沒有business value。比如我們應該多驗證用戶看得見的結果而不是去數據庫裏面找結果
注: [and]和[but]會被當做when/given/then的一部分來執行。比如一個and屬於given step下,那麼and這個step就會變爲given的一部分
4. environment.py文件裏支持的一些方法:
before_step(context, step), after_step(context, step)
# 夾心餅乾,步驟"step"相當於中間的奶油,順序: before_step > step > after_step
before_scenario(context, scenario), after_scenario(context, scenario)
# 漢堡包,場景"scenario"相當於中間的食材,順序: before_scenario > scenario > after_scenario
before_feature(context, feature), after_feature(context, feature)
# 大夾心餅乾,在每個feature文件包含很多的步驟,就像有很多層奶油,順序: before_feature > feature > after_feature
before_tag(context, tag), after_tag(context, tag)
# 小蜜蜂,有tag裝飾(花)的每個場景前後執行,順序: before_tag > 被tag裝飾的場景 > after_tag
before_all(context), after_all(context)
# 安檢員,在你旅程開始和結束時運行,順序: before_all > 整個測試過程 > after_all