一種新的單元測試的方法 單元測試工具
一種新的單元測試的方法意味著什么?難道說Junit或許TestNG還不夠好?Junit(這里我提及到它由于它簡樸,然而在我的探討中,TestNG 也一樣簡樸 from here on I’ll nominate it only for briefness,but TestNG is the same for my discussion)把測試類作為重點,并且一切的測試都是從那里開端。這意味著事實上,被測試類被以為僅僅存在于測試代碼中,順序員只能通過它們運用的名字通例來找到這些被測試類。
在舊版本的Junit中,你設計的測試類,須要強迫繼續Junit框架中的類,并且將調用的方法須要用“test“掃尾。因而按這個通例來命名測試類和測試方法,并把他們與被測試的類和方法“銜接”起來。我想你會贊同,TestNG和Junit4給了咱們更多的自在,去掉這些請求。不論怎么,被測試的類和方法和咱們的測試類依然是這樣邏輯的聯絡在一起,并且很多測試類依然遵照那些舊的通例。
然而有很多更好的方法來命名類和方法!我來介紹BDD(Behaviour Driven Development),請注重BDD不是這篇文章的重點,然而它使我這篇文章更加圓滿。因而,讓咱們先用少許文字理解BDD吧。
BDD不只是一個新的寫測試的方法,也是一個按商定的新的設計情勢
引用behaviour-driven。org來開端我的介紹:
BehaviourDrivenDevelopment grew out of a thought experiment based on NeuroLinguisticProgramming techniques。 The idea is that the words you use influence the way you think about something
BDD發生自一個基于神經言語計劃學技巧的試驗的想法。這個想法是你用的言語會影響你斟酌問題的方法。
這個想法是須要順序員關注用來描寫一個測試類或許方法的詞語,由于所選的詞語將影響到他們對這個問題的關注點。實踐上,采取BDD方法寫測試類時,相比這些被測試的類÷方法自身,咱們將更加關注這些被測試類÷方法的行動。當然,這也將轉變很多咱們寫測試代碼的方法,比方,咱們將對一個方法測試屢次來驗證每個行動能否準確。
OK, what if I don’t believe on Neuro Linguistic Programming(神經言語計劃學)?能否我還不信任神經言語計劃學。好的,從一個地道的開發者角度來看,咱們依據咱們的類和方法的行動作為商定來命名測試,因而,這個測試后果將是相對清楚的(比方,
“shouldAcceptNullValue fails”就是一個清楚的表白,并不須要龐雜的報告)。讓咱們供給一個簡樸的例子:
Java代碼
1。 @Test( expected = IllegalArgumentException。class )
2。 public void shouldNotPermitMethodNull() throws Exception 【
3。 【。!
4。 】
5。 @Test( expected = IllegalArgumentException。class )
6。 public void shouldNotPermitEndPointNull() throws Exception 【
7。 】
8。 @Test
9。 public void shouldInitWebParams() throws Exception 【
10。 】
11。 @Test
文章來源于領測軟件測試網 http://www.kjueaiud.com/