我有一個包含一個用戶界面和一些進程的exe文件的C++代碼。 我的目標是將UI與進程分開,並將exe轉換爲dll。轉換項目而不引入錯誤
爲了做到這一點,我正在考慮在觸摸任何代碼之前生成單元測試,然後執行我的修改並確保測試沒有失敗。
問題是我不確定這是否是最好的方法,如果是,是否有自動生成單元測試的方法。
順便說一句,我正在使用VS 2012. 您有任何指導嗎?
我有一個包含一個用戶界面和一些進程的exe文件的C++代碼。 我的目標是將UI與進程分開,並將exe轉換爲dll。轉換項目而不引入錯誤
爲了做到這一點,我正在考慮在觸摸任何代碼之前生成單元測試,然後執行我的修改並確保測試沒有失敗。
問題是我不確定這是否是最好的方法,如果是,是否有自動生成單元測試的方法。
順便說一句,我正在使用VS 2012. 您有任何指導嗎?
據我所知,在單元測試下沒有自動將現有代碼自動生成的工具 - 如果那麼簡單,就不應該有新的bug,對吧?正如Arne在他的回答中所說的那樣,如果代碼並非設計爲首先進行測試,那麼通常必須將其更改爲可測試。在我看來,最好的做法是學習一些技巧,介紹如何用相對較少的變化引入單元測試(以便在開始「真正」修改之前引入單元測試)。我最近閱讀的關於這個主題的一本書是Michael Feathers的「與遺產代碼有效地合作」(亞馬遜鏈接:http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)。雖然它有一些缺點,但它對技術的詳細描述很容易引入單元測試。
爲GUI編寫有意義的單元測試相對困難。有像FrogLogic's Squish這樣的框架使得GUI測試相對容易,但是通常這些工具並不是免費的。
另請注意,「事後」編寫單元測試並不是一件輕而易舉的事情,因爲原始代碼可能已經不得不改變以使其可測試。
+1提及使用遺留代碼有效地工作,雖然這個問題作爲一個整體更適合程序員。 –