之前是作軟件測試的,最近剛剛轉到C++開發這行,發現須要瞭解和掌握的內容真是不少。html
廢話很少說,最近想學學單元測試,而手上最最經常使用就是VS2010,那麼就從它開始吧。windows
要說的是從一開始我就注意到在VS2010裏面自帶測試模塊,想一想應該自己就可以很好的完成單元測試,因此繼續研究。最初的時候是鼠標點擊在函數上面右鍵彈出菜單有建立單元測試的功能,點擊以後發現提示我使用的是非託管C++可以自動生成單元測試,因此繼續研究。函數
下面就說下本人研究的一些經驗吧。工具
VS2010(聽說只有旗艦版有測試模塊,別的版本我歷來沒有用過)自帶的單元測試支持VB、C#、VC++(俗稱託管C++,微軟C++等),而對於標準C++是不直接支持的,上網查了不少資料,發現貌似是能夠間接實現標準C++單元測試的。可是最終實現受到諸多限制。這裏 金陵書生 的一篇關於單元測試(網址 )的簡單精悍介紹使我對啓發很大,可是注意它說在單元測試下,測試標準C++也須要懂得VC++,由於要用VC++來編寫測試代碼,對於我來講,我自己瞭解過一些VC++,因此很是討厭這種語言,根本不是C++,更像C#,因此我進行簡單的嘗試後就放棄了這個單元測試方案。單元測試
我開始研究另外一種單元測試方案,很主流很強大的googletest,估計就算不知道這個東西的人,上網一查就會一目瞭然。我要說的是,這個googletest對新手來講很是簡單,在官方的幫助文檔中,只須要看一頁內容就能初步上手進行單元測試,很是強大很是簡單,源碼也開發,感受就是很是完美。學習
下面對比一下VS2010和googletest單元測試優劣:測試
VS2010:缺點是有VS的時候才能使用,並且主要支持VB、C#、VC++,對於標註C++支持並很差,就算支持也是民間方法。它的最最大的優點就是對於長期使用VS的開發人員來講這個工具用來特別順手,不肯再投入更多時間精力去學習別的技術的人,可以短期就能夠學會並使用VS單元測試方法。而且VS單元測試相關幫助文檔很強大,在MSDN中有很詳細橫具體的操做方法。google
googletest:缺點是多是一個比較陌生的事物(對於沒有接觸過的人),優勢太多:跨平臺(支持微軟windows,蘋果OS,Linux等等);源碼簡單易懂,頭文件和原文件就十幾個;幫助文檔強大,在google和wiki合做頁面可以找到很是詳細的使用說明和指南,而且對於新人來講一頁文檔就可以學會googletest的單元測試;通用性強,能夠像其它第三方庫同樣集成到VS裏面進行使用,無需額外配置和學習工具;自動化執行,主函數都是現成的copy過來就能夠用,用戶只須要關心單元測試具體內容就能夠。spa
光說不練估計有人對我說的會有質疑,下面是我實踐示例(下載連接:點擊這裏):htm
示例介紹:
解決方案中==>test2014053102項目:主要編寫測試代碼,以dll形式生成
解決方案中==>test2014053103項目:暫時無用,不用看
解決方案中==>TestProjectWithVS項目:使用VS2010自帶技術對test2014053102.dll進行單元測試
解決方案中==>TestProjectWithGoogleTest項目:使用googletest技術對test2014053102.dll進行單元測試
注:具體的項目配置等信息你們能夠查看下載下來的項目文件。