Mock InjectMocks ( @Mock 和 @InjectMocks )区别
之前一直对这两个注解的区别不是很明白。
搜到过一篇博客园的文章举例说明了代码行为的区别。后来在stackoverflow上看到一个问答简单明了的解释了这两个注解在定义上的区别:
在此翻译记录一下:
//译文Begin:
@Mock: 创建一个Mock.
@InjectMocks: 创建一个实例,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。
注意:必须使用@RunWith(MockitoJUnitRunner.class) 或 Mockito.initMocks(this)进行mocks的初始化和注入。
- @RunWith(MockitoJUnitRunner.class)
 - public class Test {
 - @InjectMocks
 - private SomeHandler someHandler;
 - @Mock
 - private OneDependency oneDependency; // 此mock将被注入到someHandler
 - // ...
 - }
 
// 译文end.
Credit to the questioner and answerer.
                    
                
                
            
        
浙公网安备 33010602011771号