尤其是對於C#單元測試,如何進行測試運行各種輸入或輸入矩陣?單元測試各種各樣foreach的一些輸入
我經常會遇到單元測試會產生輸入矩陣的情況,但通常可以通過檢查輸入列表來合理解決這個問題。
最簡單的情況下,測試加成:
- 0 + 0 = 0
- 1 + 0 = 1
- 0 + -1 = -1
- 1 + -1 = 0
對每個輸入都會進行相同的測試(在這個例子中有4個輸入,每個輸入都與某些經驗相關輸出。
的簡單的解決方案是:
object[] inputs = ...
foreach (var input in inputs)
// Put Assert here
但問題是,當你運行你的測試不會告訴爲其輸入失敗,除非你在郵件日誌足夠的細節手動。
另一種解決方案是展開循環(如下所示)。堆棧跟蹤然後給出哪個輸入失敗,並且這允許再次對單個輸入運行測試。
TestAddition(0, 0, 0);
TestAddition(1, 0, 1);
TestAddition(0, -1, -1);
TestAddition(1, -1, 0);
最後但並非最不重要的,就像FitNess解決方案,這似乎有助於這種情況下,還增添了不少複雜的,似乎沒有適應好了標準C#開發。
所有這些解決方案都不適用於燈具,因爲所有輸入都會調用[TestInitialize]
一次。
你的解決方案是什麼?
是否有一些功能我不知道可以幫助這些情況?
看看這是否有幫助 - 標籤:'無恥的博客插件':) http://madcoderspeak.blogspot.com/2009/01/nunit-rowtest-extension-running-same.html – Gishu 2010-06-30 14:45:31
感謝那些keyworks。有了它,我發現http://www.c-sharpcorner.com/UploadFile/sanks/1770/Default.aspx這似乎接近我正在尋找(看起來有點複雜)。搜索... – Wernight 2010-06-30 14:57:12