@Mock 对象实例为空

sau*_*wal 1 java junit mockito

@Mock 对象实例为 null 。

我在做这是我的测试课

@Mock
private SchoolRequest schoolRequest;

@InjectMock
private FormRequest formRequest;

@Before
public void init(){
     MockitoAnnotations.initMocks(this);
}

Class FormRequest {

@Autowired 
private SchoolRequest schoolRequest;


}
Run Code Online (Sandbox Code Playgroud)

此应用程序运行正常,但在测试用例中schoolRequest为 null。关于为什么会发生的任何指示?

小智 5

我认为您在类级别上缺少 @RunWith 注释。每当您想使用 @Mock 注释时,您都应该使用 MockitoJUnitRunner。

@RunWith(MockitoJUnitRunner.class)
public class MockitoTest {
@Mock
private SchoolRequest schoolRequest;

@InjectMock
private FormRequest formRequest;

@Before
public void init(){
     MockitoAnnotations.initMocks(this);
}
}
Run Code Online (Sandbox Code Playgroud)

我希望这对你有用..


sau*_*wal 5

我不知道原因,但这有效。

private SchoolRequest schoolRequest = Mockito.mock(SchoolRequest.class); 
Run Code Online (Sandbox Code Playgroud)

也许有人可以评论为什么这有效。@Mock和 和有什么区别Mockito.mock。我以为它们是一样的。