- Mockito.mock()和@Mock的区别
相同点:Mockito.mock()和@Mock的作用都是生成一个接口或者类的mock对象。
不同点:@Mock注解生效必须使用@RunWith(MockitoJUnitRunner.class)或者MockitoAnnotations.openMocks()去初始化对象,否则直接使用@Mock的对象会报空指针。
MockitoAnnotations.initMocks()已经被MockitoAnnotations.openMocks()替代。// @Mock注解生效的两种方式,使用以下一种即可 // 方式一:使用@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class) public class Test { @Mock private HttpServletReqeust reqeust; // 方式二:使用MockitoAnnotation.openMocks(this) @Before public void init() { MockitoAnnotation.openMocks(this); // 初始化@Mock注解的对象 } }
- @MockBean的作用
@mockBean注解将Mock对象添加到Spring上下文中。注解的对象将替换Spring上下文中任何相同类型的现有bean,如果没有定义相同类型的bean,将添加一个新的bean。