я пишу junits для приведенного ниже класса,
@Repository
public class IncidentRepository {
@Autowired
@Qualifier("mysqlJdbcTemplate")
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
@Qualifier("oracleJdbcTemplate")
private JdbcTemplate oracleJdbcTemplate;
private String tableName = "BSC_INCIDENT_STG_3";
public String getTableName() {
return tableName;
}
public List<Incident> listAll() {
String cprSql = "SELECT 1 FROM DUAL";
return oracleJdbcTemplate.query(cprSql, new IncidentMapper());
}
}
, и класс Junit, над которым я работаю, таков:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = CommonConfig.class)
public class IncidentRepositoryTest {
private final Logger log = LoggerFactory.getLogger(Application.class);
@InjectMocks
IncidentRepository incidentRepository;
@Qualifier("mysqlJdbcTemplate")
private JdbcTemplate mysqlJdbcTemplate;
@Qualifier("oracleJdbcTemplate")
private JdbcTemplate oracleJdbcTemplate;
@MockBean
private Incident incident;
@MockBean
private IncidentMapper incidentMapper;
private String deleteSqlQuery = "DELETE FROM ";
String cprSql = "SELECT 1 FROM DUAL";
List<Incident> incidentList = new ArrayList<Incident>();
@Before
public void setUp() throws Exception {
//All Initializations goes here.
MockitoAnnotations.initMocks(this);
mysqlJdbcTemplate = Mockito.mock(JdbcTemplate.class);
oracleJdbcTemplate = Mockito.mock(JdbcTemplate.class);
incident.setIncidentNumber("incidentNumber");
incident.setApplicationId("J12342");
incident.setCategory("O12987");
incident.setOpenTime("ApplicationName");
incident.setSeverityCode("OwningLob");
incident.setAssignment("reportingCIOLOB");
incident.setStatus("reportingCTOGroup");
incident.setCloseTime("rto");
incident.setStatus("status");
incident.setElapsedTime("assetName");
incident.setResolutionCode("environment");
incident.setType("invNo");
incident.setOpenGroup("osiStatus");
incident.setResolvedGroup("measuredID");
incident.setResolvedTime("policyID");
incident.setUserPriority("policyName");
incident.setJpAcctLob("lastBreakDate");
incident.setJpAcctAppRto("lastClearedDate");
incident.setJpImpact("osiStatus");
incident.setJpImpactDurationMin("measuredID");
incident.setJpExternalId("policyID");
incident.setJpExternalSystem("policyName");
incident.setJpConfigItem("lastBreakDate");
incident.setJpMasterHost("lastClearedDate");
incident.setJpSite("osiStatus");
incident.setJpAppserviceName("measuredID");
incident.setJpAppserviceId("policyID");
incident.setJpVerumidentifier("policyName");
incidentList.add(incident);
}
@Test
public void testListAll() throws Exception {
when(oracleJdbcTemplate.query(cprSql,incidentMapper)).thenReturn(incidentList);
incidentRepository.listAll();
}
}
Проблема в том, что объект mysqlJdbcTemplateвсегда нулевой в классе IncidentRepository, даже когда я его издевался.
Я не хочу, чтобы вы @Autowired аннотация. Я просто хочу издеваться над объектами.
Может кто-нибудь помочь, пожалуйста?