6

我正在使用德爾福7.我們可以使用DUnit編寫什麼樣的測試用例?

我是新來的DUnit,我的懷疑是什麼樣的測試案例,我可以寫DUnit和如何(這對我來說非常重要)。

是否可以編寫特定按鈕點擊事件的測試用例?因爲在那種情況下,可能會有一大組代碼被使用,其中更多的單元被調用以及它們各自的數據庫相關的過程或功能。在那種情況下,編寫測試用例的最佳方法是什麼? (如果可能的話,一個例子或者參考對我來說是一個很大的幫助)。

因爲在樣本DUnit項目中我們不能編寫整套應用程序代碼,因爲在某些情況下可能需要創建其他一些表單。

因此,我懷疑是否會出現這樣的情況,如何編寫測試用例,以及我們可以使用DUnit編寫什麼類型的測試用例,重要的是如何編寫測試用例?

+5

你可以寫與DUNIT UI測試,但是對於支持是相當有限的。但是,請不要告訴我你的應用程序邏輯存在於'OnClick'事件處理程序中。如果重新分解你的應用程序從應用邏輯獨立的圖形用戶界面,那麼你就可以直接測試應用程序邏輯。 –

+0

看一看模型視圖模型(MVVM)爲多種可能的方式來產生可測試的代碼之一。瞭解到您將獲得DUnit點 –

+1

對於MVVM,您可能想查看來自CodeRage7的視頻 - http://blogs.embarcadero.com/davidi/2012/11/20/41986 –

回答

16

這應該是一個評論,但我寫它作爲答案,因爲它不適合評論。

我建議你做兩件事情:

  • 調查從界面脫鉤業務邏輯(重構你的代碼)
    一般來說,你拆你的代碼包含自個單位,那麼單元測試的核心功能「自下而上」的單位。你不會單元測試GUI。 Google例如「單元測試脫鉤德爾福單位」

  • 退房以下鏈接爲例子,使您可以通過單元測試做什麼:

http://www.howtodothings.com/computers/a928-automated-testing-with-dunit.html
http://www.nldelphi.com/cgi-bin/articles.exe/ShowArticle?ID=14697
https://lists.sourceforge.net/lists/listinfo/dunit-interest
http://www.delphi-treff.de/tutorials
http://sourceitsoftware.blogspot.com/2008/10/getting-line-numbers-in-dunit-test.html
http://wiert.me/2010/09/08/delphi-use-tstrings-to-parse-non-standard-separated-strings-and-validate-it-with-dunit-tests/
http://delphi.about.com/od/vclusing/a/autotestvcl.htm
http://dunit.sourceforge.net/
http://delphi.about.com/od/toppicks/tp/aatpdebug.htm
http://www.nickhodges.com/post/Delphi-Mocks-The-Basics.aspx
http://www.finalbuilder.com/Resources/Blogs/tabid/458/EntryId/287/Introducing-Delphi-Mocks.aspx
https://github.com/Vsofttechnologies/delphi-mocks
http://www.uweraabe.de/Blog/2012/03/17/a-dunit-folder-iterator-extension/
Unit testing in Delphi - how are you doing it?
http://members.optusnet.com.au/~mcnabp/
http://www.nickhodges.com/post/The-Vocabulary-of-Unit-Testing.aspx
http://hanselminutes.com/169/the-art-of-unit-testing-with-roy-osherove

+0

我會讚揚你很多更多的時間,如果我可以 – CheGueVerra

+1

並重構你的代碼我只是偶然發現了這個簡介:http://www.tabdee.ltd.uk/papers/IntroductionToRefactoring.html –

+0

很確定你可以刪除除一個或兩個鏈接以外的所有鏈接並獲取它以適合作爲評論。 – BoltClock

4

通過編寫簡單的測試學習單元測試。簡單的測試是針對您正在構建的可以單元測試的課程。單元可測試的類不是一個完整的Delphi GUI應用程序。

試試這個作爲第一個練習:

  1. 做一個類,它可以從1因子的整數MAXINT成質數列表,當乘在一起,導致原來的號碼。結果應按最小因子排序。如果結果列表的大小是1,那麼結果是素數。零和負數會引發異常。

  2. 而是一氣呵成使整個事情的,嘗試「紅/綠」測試驅動開發。這意味着只需編寫足夠的代碼以使第一次測試失敗。 (編寫第一個測試,編寫足夠的代碼,使得您正在構建的類編譯並運行,但未通過測試,現在進行第一次測試通過,未解決整個分解數字,只是通過第一次測試。)

  3. 重複寫入失敗的測試,然後你需要讓它通過,直到你提供(與你的測試)的代碼,您的類現在可以因子中的任何整數值從1到MAXINT的過程。

當涉及到「工作單元測試到您現有的遺留應用程序」,你應該檢查出了一本書叫「修改代碼的工作」。我不能給你任何簡要介紹如何去開始單元測試添加到泥的大球(您的按鈕的onClick代碼)。

相關問題