在测试用例类中没有使用@Mock注入的Spring数据存储库返回null?

时间:2015-09-27 12:44:51

标签: java spring mockito spring-data-jpa springjunit4classrunner

未在testcase类中注入的存储库对象。     这是我下面的测试类代码

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classesExternalProviderMain.class)
@ActiveProfiles(ApplicationConstants.DEVELOPMENT_PROFILE)
@WebAppConfiguration
public class EmployeeServiceTest {
@InjectMocks
EmployeeService employeeService; //not injected null 
@Mock
EmployeeRepository employeeRepository;//not injected null
@Test
public void testEmployee() {
    Mockito.when(employeeRepository.findByName(Stringname)).thenReturn(getEmployee());
    List<Employee> resultedTrackbles = employeeService.getEmployeeByName("mike");
}
private List<Employee> getEmployee(){
//here is the logic to return List<Employees>
}
}

你能帮我解释如何注入我的&#34; EmployeeRepository&#34;并且需要编写任何其他逻辑。

1 个答案:

答案 0 :(得分:2)

那是因为您使用SpringJUnit4ClassRunner而不是MockitoJUnitRunner运行测试。

模拟需要使用MockitoAnnotations.initMocks初始化:

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