編寫(xiě)背景:
測(cè)試組團(tuán)隊(duì)經(jīng)過(guò)1年多的實(shí)戰(zhàn),測(cè)試工作流程及規(guī)范大家都已經(jīng)明白并能很好的完成每個(gè)月的測(cè)試任務(wù);下半年要向工作質(zhì)量和工作效率邁上一個(gè)臺(tái)階,需要發(fā)揮大家的力量;自動(dòng)化測(cè)試腳本編寫(xiě)這幾個(gè)月在測(cè)試任務(wù)中讓大家感受了一把;大家都認(rèn)識(shí)到,要想讓這些自動(dòng)化測(cè)試腳本能高效的維護(hù)、使用,讓新人和老人更容易的明白這些代碼,我們需要一個(gè)自動(dòng)化測(cè)試腳本編寫(xiě)的規(guī)范。
經(jīng)過(guò)大家的努力,得出了這么個(gè)初稿,放在這里和大家交流交流,希望有經(jīng)驗(yàn)的同行能給些建議。
一、命名規(guī)范
1.1 全體
1. 原則上不使用單詞的省略詞。
2. 對(duì)于作用域小的循環(huán)變量,以i, j, k這樣的名字順序使用。
3. 對(duì)于作用域小的變量名,可以使用類(lèi)名的省略語(yǔ)。 (例: eo = ExampleObject.new)
1.2 類(lèi)名和模塊名
類(lèi)以及模塊名、各單詞的每頭一個(gè)字母大寫(xiě),不要使用“_”下劃線(xiàn)等分隔符。但是,像HTTP這樣的通用縮略語(yǔ),全都照樣大寫(xiě)。名稱(chēng)好使用“名詞”或者“形容詞+名詞”
正例:
OtherClass
HTTPClient
誤例:
Other_Class
OTHERCLASS
HttpClient
HTTPclient
HTTP_Client
1.3 方法名
方法名全都小寫(xiě)、各個(gè)單詞之間用“_”分隔。方法名中使用“動(dòng)詞”或者“動(dòng)詞+名詞”
正例:
add_something
誤例:
addsSomething
Add_Something
返回真假值的方法的命名,在動(dòng)詞或形容詞后追加“?”,對(duì)形容詞,不用添加“is_”。
正例:
visible?
誤例:
is_visible
is_visible?
另外,在使用具有破壞性和非破壞性的方法時(shí)候,要在破壞性的方法名后追加“!”。
例:
split
split! # 具有破壞性的split
1.4 常數(shù)名
類(lèi)和模塊名以外的常數(shù)名,全都用大寫(xiě),單詞之間用“_”來(lái)分隔。
例:
EXAMPLE_CONSTANT
1.5 變量名
對(duì)于變量名,全都用小寫(xiě),單詞之間用“_”來(lái)分隔。全局變量以$開(kāi)頭,實(shí)例變量以@開(kāi)頭,類(lèi)變量以2個(gè)@開(kāi)頭。
例:
tmp
local_variable
@instance_variable
$global_variable
@@class_variable
變量名稱(chēng)要能清晰表達(dá)該變量的含義,如order_state,記錄訂單的狀態(tài)
1.6 文件名
文件名全都使用小寫(xiě)字母,單詞之間用“_”來(lái)分隔。另外,可以把文件中的已經(jīng)變換的主要類(lèi)名作為文件名來(lái)使用。
例:
foo.rb # 定義了類(lèi)Foo
foo_bar.rb # 定義了類(lèi)FooBar