Spring 数据存储库未在测试用例中使用 @Mock 注入 class returns null?
Spring data repository not injecting with @Mock in test case class returns null?
未在测试用例中注入存储库对象 class。
这是我下面的测试 class 代码
@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>
}
}
你能帮我如何注入我的 "EmployeeRepository" 并且需要编写任何额外的逻辑吗?
那是因为你 运行 是 SpringJUnit4ClassRunner
而不是 MockitoJUnitRunner
的测试。
模拟需要用 MockitoAnnotations.initMocks
:
初始化
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
未在测试用例中注入存储库对象 class。 这是我下面的测试 class 代码
@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>
}
}
你能帮我如何注入我的 "EmployeeRepository" 并且需要编写任何额外的逻辑吗?
那是因为你 运行 是 SpringJUnit4ClassRunner
而不是 MockitoJUnitRunner
的测试。
模拟需要用 MockitoAnnotations.initMocks
:
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}