Mocking的概念及常見Mocking框架概述
阿新 • • 發佈:2019-02-06
在單元測試中,測試一個物件的API往往需要依賴其他物件構成的環境。例如,測試物件是A,但是A的正常工作需要物件B, C提供支援。而物件B, C的初始化又有一個複雜的過程。Mocking為單元測試提供了一個方案,直接設定模擬的物件B, C,在測試物件A時使用模擬出來的物件B, C。
這些被模擬出來的物件B, C就被稱為Mocking物件,Mocking物件的行為是在單元測試中人為設定的且符合預期。
常見的Mocking框架有EasyMock、Mockito、PowerMock和JMockit。
- EasyMock最早出現,設計最嚴謹,但是使用也最不方便。
- Mockito去掉了EasyMock的部分概念,使用方便。
- EasyMock和Mockito的功能都有侷限,要支援對建構函式, static方法, final方法, private方法的的Mock,還必須藉助於PowerMock。當然,PowerMock也離不開EasyMock和Mockito。所以,最常用的是Mockito和PowerMock的組合。但是即使如此,對final類的Mock目前仍然束手無策,還需要等待Mockito 2的支援。
- JMockit能夠不借助於容器對JavaEE專案進行測試。