編寫背景:
測試組團(tuán)隊經(jīng)過1年多的實戰(zhàn),測試工作流程及規(guī)范大家都已經(jīng)明白并能很好的完成每個月的測試任務(wù);下半年要向工作質(zhì)量和工作效率邁上一個臺階,需要發(fā)揮大家的力量;自動化測試腳本編寫這幾個月在測試任務(wù)中讓大家感受了一把;大家都認(rèn)識到,要想讓這些自動化測試腳本能高效的維護(hù)、使用,讓新人和老人更容易的明白這些代碼,我們需要一個自動化測試腳本編寫的規(guī)范。
經(jīng)過大家的努力,得出了這么個初稿,放在這里和大家交流交流,希望有經(jīng)驗的同行能給些建議。
一、命名規(guī)范
1.1 全體
1. 原則上不使用單詞的省略詞。
2. 對于作用域小的循環(huán)變量,以i, j, k這樣的名字順序使用。
3. 對于作用域小的變量名,可以使用類名的省略語。 (例: eo = ExampleObject.new)
1.2 類名和模塊名
類以及模塊名、各單詞的每頭一個字母大寫,不要使用“_”下劃線等分隔符。但是,像HTTP這樣的通用縮略語,全都照樣大寫。名稱最好使用“名詞”或者“形容詞+名詞”
正例:
OtherClass
HTTPClient
誤例:
Other_Class
OTHERCLASS
HttpClient
HTTPclient
HTTP_Client
1.3 方法名
方法名全都小寫、各個單詞之間用“_”分隔。方法名中使用“動詞”或者“動詞+名詞”
正例:
add_something
誤例:
addsSomething
Add_Something
返回真假值的方法的命名,在動詞或形容詞后追加“?”,對形容詞,不用添加“is_”。
正例:
visible?
誤例:
is_visible
is_visible?
另外,在使用具有破壞性和非破壞性的方法時候,要在破壞性的方法名后追加“!”。
例:
split
split! # 具有破壞性的split
1.4 常數(shù)名
類和模塊名以外的常數(shù)名,全都用大寫,單詞之間用“_”來分隔。
例:
EXAMPLE_CONSTANT
1.5 變量名
對于變量名,全都用小寫,單詞之間用“_”來分隔。全局變量以$開頭,實例變量以@開頭,類變量以2個@開頭。
例:
tmp
local_variable
@instance_variable
$global_variable
@@class_variable
變量名稱要能清晰表達(dá)該變量的含義,如order_state,記錄訂單的狀態(tài)
1.6 文件名
文件名全都使用小寫字母,單詞之間用“_”來分隔。另外,可以把文件中的已經(jīng)變換的主要類名作為文件名來使用。
例:
foo.rb # 定義了類Foo
foo_bar.rb # 定義了類FooBar
二、代碼排版規(guī)范
2.1 注釋風(fēng)格
注釋的位置應(yīng)與被描述的代碼相鄰,可以放在代碼的上方或右方,不要放在代碼的下方;注釋內(nèi)容應(yīng)明確表達(dá)被注釋代碼的含義。
例:
# Return a Watir::IE object for an existing IE window. Window can be
# referenced by url, title, or window handle.
# Second argument can be either a string or a regular expression in the
# case of of :url or :title.
# IE.attach(:url, 'http://www.google.com')
# IE.attach(:title, 'Google')
# IE.attach(:hwnd, 528140)
# This method will not work when
# Watir/Ruby is run under a service (instead of a user).
defself.attach(how, what)
ie = new true # don't create window
ie._attach_init(how, what)
ie
end
2.2 代碼格式
2.2.1代碼空格
- 逗號“,”、分號“;”之后要留空格
- 賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”等二元操作符的前后都加空格或者前后都不加空格。
正例:
a+b
a + b
誤例:
a+ b
a +b
- 一元操作符如“!”、“~”以及“[]”、“.”、“::”這類操作符前后不加空格。
- 函數(shù)名之后不要留空格
2.2.2代碼縮進(jìn)
為了增加程序的可讀性而進(jìn)行的適當(dāng)?shù)目s進(jìn),縮進(jìn)的幅度以2個字符為宜。另外,縮進(jìn)的時候,只可使用空格,不可使用TAB(編程工具不同的時候,看起來會不一樣)
例:
if x > 0
if y > 0
puts "x > 0 && y > 0"
end
end
2.2.3空行
同一函數(shù)內(nèi),不同含義的代碼段之間空一行;不同函數(shù)和不同類之間空兩行
2.3.輸出檢查點的格式
輸出檢查點采用“---輸出語句---”格式,輸出語句應(yīng)簡潔清晰的表達(dá)意思。
三、代碼示例
代碼示例如下圖