Mock InjectMocks ( @Mock 和 @InjectMocks )區別

以前一直對這兩個註解的區別不是很明白。java

搜到過一篇博客園的文章舉例說明了代碼行爲的區別。後來在stackoverflow上看到一個問答簡單明瞭的解釋了這兩個註解在定義上的區別:this

在此翻譯記錄一下:spa

//譯文Begin:.net

@Mock: 建立一個Mock.翻譯

@InjectMocks: 建立一個實例,其他用@Mock(或@Spy)註解建立的mock將被注入到用該實例中。code

注意:必須使用@RunWith(MockitoJUnitRunner.class) 或 Mockito.initMocks(this)進行mocks的初始化和注入。blog

 

[java] 
 
  1. @RunWith(MockitoJUnitRunner.class)  
  2. public class Test {  
  3.   
  4.     @InjectMocks  
  5.     private SomeHandler someHandler;  
  6.   
  7.     @Mock  
  8.     private OneDependency oneDependency; // 此mock將被注入到someHandler  
  9.   
  10.     // ...   
  11.   
  12. }  

 

// 譯文end.get

Credit to the questioner and answerer. 博客

相關文章
相關標籤/搜索