引入Mockito測試用@Spy和@Mock


關於這個問題,小編百度了不少,基本都沒有一個簡單清晰的解釋。或者是沒有一個良好的實踐例子,在此小編舉例說明,但願你們能懂web

若是還不會用Mockito的同窗,請移步 教程spring

標題@Spy與@Mock區別和實踐

  1. @Spy修飾的外部類,必須是真實存在的,若是沒有咱們要本身生成建立
Mockito.doReturn(response).when(creditpaymentTxnManageFacade.getName());
  1. @Mock修飾的外部類,是徹底模擬出來的,就算項目中沒有這個類的實例,也能本身mock出來一個。

這麼說可能仍是不清楚,那麼小編舉一個例子。

在Spring整合Dubbo的項目,中若是你引入了一個外部的Service。
若是在寫單元測試時候,外部的Service能加載到的話就能夠使用@Spy註解,由於Spring能爲你從外部服務找到這個Service並生成實例注入。svg

可是若是外部的服務沒有部署,那麼Spring就不能爲你建立實例,就會報錯提示你在建立@Spy修飾服務必需要先實例,就像下圖同樣,此時只要用@Mock註解替換@Spy就行了。
在這裏插入圖片描述post

相關文章
相關標籤/搜索