我有一個關(guān)于測試類(如轉(zhuǎn)換器)的問題??梢哉f我有一個從EntityA到EntityB的轉(zhuǎn)換器。轉(zhuǎn)換器看起來像這樣:public EntityB convert(EntityA){ //call interal methods return B.}private xy internalMethod1(...){ //call other interal Method}private xy internalMethod2(...){ ....}private xy internalMethod3(...){ ....}private xy internalMethod4(...){ ....}轉(zhuǎn)換器具有一個公共方法和4個內(nèi)部方法來轉(zhuǎn)換實體。我應(yīng)該如何測試?Option1 我僅測試公共方法,并通過不同的示例輸入涵蓋了internalMethods中的所有情況。優(yōu)點:僅測試“接口”。不知道內(nèi)部結(jié)構(gòu)。內(nèi)部重構(gòu)非常容易,不需要在測試中進行任何更改。缺點:測試所有案例的測試可能很大,可能不清楚。每個輸入都必須通過所有方法。Option2 我為公共方法和私有方法編寫測試。(某些testframeworks可以訪問諸如powermock或spock(groovy)之類的私有方法。)我單獨測試每個方法并模擬其他每個內(nèi)部方法。優(yōu)點:真正的小型測試,僅測試方法本身并模擬所有其他方法。缺點:我知道它是如何內(nèi)部實現(xiàn)的,如果我在內(nèi)部調(diào)用結(jié)構(gòu)上重構(gòu)某些方法,某些方法名或某些內(nèi)容,則必須更改測試Option3 我編寫了一些新的類,這些類負責內(nèi)部工作并具有公共方法優(yōu)點:測試可能更清晰,并且僅針對特殊班級。缺點:一項轉(zhuǎn)換任務(wù)需要更多類。請幫助我,這里的最佳做法是什么。也許一些良好的鏈接/提示。感謝您的時間。
如何測試類似轉(zhuǎn)換器的東西
慕工程0101907
2021-05-20 18:06:05