單元測試實踐小結[6] 軟件測試
產出物:
1. 返回值包括POJO,和結構化的數據(如XML)
2. 傳遞給流程節點的參數值。
特點:
概念上,業務邏輯和業務流程是相對獨立的。實際代碼,雖然一些業務邏輯是相對獨立的。但是有一些業務邏輯與流程合在一起。由于業務邏輯有明確的返回值,業務規則可以獨立成一個方法,其是有顯示的返回值,這樣UnitTest就可以focus在業務規則的測試上。而業務流程通常沒有顯示的返回值,在很多實踐中表現為寫表動作,測試比較麻煩。
同時,不過的實際情況是業務規則和業務流程是合并在一起的。
測試的應覆蓋:
1. 返回值包括POJO,或者結構化的數據如XML可以利用XMLUnit來解決。
2. 流程節點的訪問,以及傳遞給流程節點的參數值。即對業務流程的測試,可以使用上面的訪問點的方法。
3.Dao的單元測試
第一個面臨的問題是:做Dao數據訪問層的單元測試時機。another word也就是要不要做單元測試。
幾種情況是不用測試的
1. 如果Dao就是簡單的CRUD,那么不用測;在未來當我們使用1.5的范型后,這些CRUD只要在父類做一邊里就可以了。
2. 如果hbm文件是自動生成的,那也不用測。
以下是要測的情況:
1. 如果hbm文件是手工寫的,那么需要你保證hbm的正確性。如何測試,后面再說。
2. 如果Dao中包括了一些組合查詢,那么這是一種邏輯,就應該去測;如果Dao的查詢還包含了某個排序機制,這個排序邏輯依據的是業務字段,那么也是要測的。(理由是:這些邏輯可以在java代碼實現,不過是性能太差了,但是既然java代碼的邏輯要測,那么我們沒有理由不去測在sql中的邏輯)。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/