4 回答

TA貢獻1856條經驗 獲得超5個贊
單元測試
Person方法name_length_opinion()是否值得進行單元測試,如果是的話,它將是什么樣?
您是否要確保它按照您的想法做,并確保將來不會損壞?如果是這樣,請為此編寫一個單元測試。
并且該測試只是為了確認沒有人觸摸代碼而存在
單元測試更多是關于確保類符合其指定的合同。您不必為所有內容編寫單元測試,但是,如果這是一種簡單的方法,無論如何,它都應該是一個簡單的單元測試。
重復
似乎對此方法進行的任何測試都只會重述其實現
您不應該重復算法,而應該使用用例。例如,NameLengthEvaluator
截止值為的a10
應該是以下簡稱:
喬治
瑪麗
這些是長名稱:
麥克刀
開膛手杰克
因此,您應該驗證該方法正確報告了這些名稱的縮寫。您還應該測試NameLengthEvaluator
截斷為的a4
將報告Mary
為短而其他報告為長。
丟碼?
如果您曾經編寫過一個類,然后編寫了一個主方法,該方法只是運行該類以確保其執行了預期的工作(然后在移至另一個類時就將該主方法扔掉了),那么您已經編寫了單元測試。但是不要丟掉它,而要保存并將其轉換為單元測試,以便將來可以確保您沒有破壞任何東西。
外部代碼
通常,是否有一種很好的方法來測試具有完全外部功能的類的簡單方法
好吧,如果它完全是外部的,那么為什么要在該類上使用它呢?通常,您至少有一些可以測試的邏輯。在這種情況下,您可以測試name_length_opinion
返回的結果My names is long
或My names is short
正確的情況。

TA貢獻1841條經驗 獲得超3個贊
這實際上取決于該代碼的生命周期。顯然,在當前狀態下,該方法顯然是正確的,并且單元測試更多地是關于其行為方式的規范。如果您打算在將來進行更改(NameLengthEvaluator
例如,以某種方式重新實現),那么進行單元測試就很好了,因為運行測試會捕獲任何回歸。但是在這種情況下,您似乎不太可能進行任何更改,因此測試可能過度(盡管進行了健全的檢查)。
添加回答
舉報