Ich schreibe einen Testfall mit JUnit
und ich möchte meinen Test durch Abfangen eines exception
. Die zu testende Methode löst DataException
aus und fängt Throwable
. In meinem Testfall möchte ich DataException
fangen, aber mein Test besteht, wenn ich es nicht versage.Fehler beim Test
Methode im Test:
public List<DataSet> retrieveData(String action, Map<String, Object> params, ServiceContext ctx) throws DataException {
List<DataSet> o = null;
try {
if(FIND_BY_AGENCY_CODE.equals(action)) {
o = findByAgencyCode(params);
} else if(GET_CHILD_AGENCY_CODE.equals(action)) {
o = getChildAgencies(params);
} else if(GET_VALID_VALUES.equals(action)) {
o = loadValidValues(params);
} else if(GET_VALID_VALUE_COMBO.equals(action)) {
o = getValidValueCombo(params);
} else if(GET_CLAIM_UNITS.equals(action)) {
o = getClaimUnits(params);
} else if(GET_SP_LIMIT.equals(action)) {
o = getSPLimit(params);
} else if(GET_SP_PIP_APIP_TYPE.equals(action)) {
o = getSPPipApipType(params);
} else if(GET_SP_DEDUCTIBLE.equals(action)) {
o = getSPDeductible(params);
} else if(GET_SP_COVERAGE.equals(action)) {
o = getSPCoverage(params);
} else if(GET_SP_FORM_DISPLAY.equals(action)) {
o = getSPFormDisplay(params);
} else if(GET_CLAIM_UNIT.equals(action)) {
o = getClaimUnit(params);
} else if(GET_SP_STATE_COMPANY.equals(action)) {
o = getSPStateCompany(params);
} else if(GET_SP_COV_LIMIT_LOOKUP.equals(action)) {
o = getSPCovLimitLookup(params);
} else if(GET_SP_UND_LOOKUP.equals(action)) {
o = getSPUnderwriterLookup(params);
} else if(GET_SP_UND_BRANCH.equals(action)) {
o = getSPUndBranch(params);
}
} catch(Throwable t) {
}
return o;
}
JUnit Test:
@Test
public void testRetrieveData() {
try {
AppContext.setApplicationContext(applicationContext);
IRetrievable dao = (IRetrievable)AppContext.getBean("nextGenDao");
ServiceContext ctx = new ServiceContext();
Map<String, Object> params = new HashMap<String, Object>();
params.put(ServiceConstants.AGENCY_CODE, "1234");
@SuppressWarnings("unused")
List<DataSet> ds = dao.retrieveData(NextGenDao.FIND_BY_AGENCY_CODE, params , ctx);
fail();
} catch (DataException t) {
assertNotNull(t);
assertEquals("Unit Test", t.getMessage());
}
}
Ich bin nicht ganz sicher, ob dies der richtige Ansatz ist, so etwas zu tun, aber das ist, was ich so weit gekommen .
Dank
und Ihre Fragen ist was genau? – redFIVE
Sie werfen niemals die Ausnahme von Ihrer Methode. Sie fangen es einfach und tun nichts. –
Die zu testende Methode löst keine Ausnahme aus. Warum denkst du, dass dein Test bestanden werden sollte (wenn du das denkst - es ist ein bisschen verwirrend)? –