我最近爲自定義處理器編寫了一個自定義方言Thymeleaf,用於處理一些自定義標籤,並在某些情況下用不同的方式替換它們,但我在爲處理器編寫測試時遇到問題:用Mockito測試Thymeleaf自定義方言
AbstractProcessor
的類需要重寫
protected ProcessorResult doProcess(Arguments arguments, ProcessorMatchingContext processorMatchingContext, Node node)
方法,這是一個我需要測試。
由於我的處理器涉及從arguments
參數獲取變量,我試着嘲笑它;然而,Arguments
,ProcessorMatchingContext
和Node
類都聲明爲final,這意味着它們不能被Mockito嘲笑。
我真的不想實例化一個實際的Arguments
對象,因爲它依賴於其他5個不能被模擬的對象,我最終會寫大量的代碼來測試我的處理器中的一行。
有關可能的測試策略的任何想法?
PowerMock可以模擬最終的類:https://code.google.com/p/powermock/wiki/MockFinal,以及靜態方法等 –
我知道,但它是一個相當大的項目,我不想要爲這種情況介紹PowerMock – Raibaz