用YAML構建數據測試DAO層
測試DAO層最常見的就是直接組織數據,調用相關的方法,然后查看數據庫,看看相關數據是否在DB中正確的展示。這樣測試,效率低下,容易出錯,過多的依賴了人肉。如果選擇測試數據來配置,根據配置的測試數據驗證相關信息,或許能夠達到事半功倍的效果。
測試數據配置選擇(YAML)
在JavaBean中,傳統的對象set是這樣的:
對象屬性多時,對象的set顯得有些復雜,自動代碼生成工具生成的代碼較多都是set數據的,代碼看起來不夠雅觀,需要把測試數據和測試代碼分離。可以提供參考的又xml,wiki的方式。xml的方式讀取大家都比較清楚,這里介紹一下wiki:
wiki語法
|table|表名稱|
|字段名稱1|字段名稱2|字段名稱3|
|字段值|字段值|字段值|
|字段值|字段值|字段值|
|字段值|字段值|字段值|
通過wiki配置的方式,和表字段一一對應,看起來比較直觀,只是在字段較多時容易造成混淆,同時需要自己寫代碼支持wiki語法,框架級別的支持不夠。xml配置也麻煩,數據閱讀也不夠直觀。
yaml簡單,直觀,方便閱讀,java支持框架(http://yaml.org/)較多,所以選擇yaml來配置測試數據。和TestNg保持一致,使用snakeyaml (http://code.google.com/p/snakeyaml/)
測試過程:
測試數據包括BaseDao對DB的基本操作:insert , update , find , findById , list , listCount , delete。由于findById和delete都是只有一個字段,所以測試數據基本生成只有insert , update ,delete , list這四個,業務模塊可以根據自己的需求添加相關的Dao層測試數據。
測試修改示例: