2012-11-27 54 views
2

我期待在MonoDevelop/.Net中自動生成單元測試。如何在MonoDevelop/.Net中自動生成單元測試?

我試過NUnit,但它沒有生成測試。在eclipse中,插件randoop這樣做,但它的目標是Java和JUnit。

如何在MonoDevelop和/或.Net中自動生成單元測試?或者也許有一個現有的工具,我不知道...

+1

對於我來說,目前還不清楚如何「自動」生成單元測試?似乎randoop只會產生或多或少的隨機代碼(即方法調用)並檢查一些非常原始的屬性或'equal()'。您是否在尋找一種能夠爲.NET做同樣事情的工具(我不知道有這樣的工具......)?在我看來,這不是一個好的單元測試方法 – MartinStettner

+0

我需要調用一個類的方法,使用不同的可能值,並且在他執行後產生一個測試通過和失敗的報告 這應該是一個插件用於Monodevelop。我有一個遊戲項目 – eduardosufan

+0

您是否正在尋找一種工具,給定要測試的類,將生成該類公共方法的單元測試框架? – dgvid

回答

8

不同的(隨機)輸入調用方法只是過程的一部分。您還需要爲每個輸入定義正確的結果,並且我認爲一個工具無法爲您做到這一點。

randoop似乎只檢查很少很基本的屬性equal,這是不是很好用的imo,也可能導致錯誤的正確性印象(「嘿看,所有的測試通過,我的軟件是好的」.. .. )

此外,只是隨機生成的代碼(和輸入)有未定測試結果的風險。你可能會也可能不會得到真正在你的代碼中發現缺陷的測試。

這就是說,一個快速谷歌搜索給了以下的起點,你可能要採取辦法:

  • 你可能有興趣使用測試用例生成器(這CodeProject article描述了一個非常簡單的一個)。他們支持您生成「樣板」代碼,並確保您不會錯過任何想要測試的類/方法。當然,生成的測試需要通過定義適當的(即有意義的)輸入和(正確的)輸出值來進行調整。谷歌搜索「NUnit測試發電機」將給你其他鏈接,也爲商業軟件,我不想在這裏重複...
  • NUnit(和其他測試框架)支持參數化測試:這些可以使用測試一整類輸入場景。對於NUnit,我找到Random屬性,它可以讓你爲你的方法生成隨機輸入(在一定範圍內)。請記住我上面寫的關於隨機測試輸入的內容:這些測試的結果將不可重現,這使得它們在自動或迴歸測試中無用。

也就是說,還看this question(當然其他人左右),它可以支持我的論點自動單元測試生成。

+0

感謝您的幫助,我使用了CodeProyect文章並手動編寫測試用例 – eduardosufan

+0

根據其文檔,Randoop檢查的不僅僅是平等的屬性。此外,它可以創建具有豐富斷言的迴歸測試,以確保行爲不會從運行到運行改變,這是測試的真正目的。通過運行大量不想變成測試用例的執行來查找bug也很有用,而且Randoop也可以這樣做,但它與自動創建測試套件無關。 – mernst

相關問題