Mockito.mock(SomeClass) 和 @Mock 注释有什么区别?

2022-01-08 00:00:00 mocking unit-testing mockito java junit

Mockito.mock(Class<T> classToMock)方法和@Mock注解有什么区别?它们是一样的吗?

What is the difference between Mockito.mock(Class<T> classToMock) method and the @Mock annotation? Are they the same?

例如,是这样的:

private TestClass test = Mockito.mock(TestClass.class);

同:

@Mock
private TestClass test;

推荐答案

它们都达到了相同的结果.使用注解 (@Mock) 通常被认为是更干净",因为您不会用看起来都一样的样板赋值来填充代码.

They both achieve the same result. Using an annotation (@Mock) is usually considered "cleaner", as you don't fill up your code with boilerplate assignments that all look the same.

请注意,为了使用 @Mock 注释,您的测试类应使用 @RunWith(MockitoJUnitRunner.class) 注释或包含对 的调用MockitoAnnotations.initMocks(this) 在其 @Before 方法中.

Note that in order to use the @Mock annotation, your test class should be annotated with @RunWith(MockitoJUnitRunner.class) or contain a call to MockitoAnnotations.initMocks(this) in its @Before method.

相关文章