gpt4 book ai didi

java - 测试失败

转载 作者:行者123 更新时间:2023-12-01 10:06:05 25 4
gpt4 key购买 nike

我正在使用 JUnit 编写一个测试用例,并且我想通过捕获异常来使测试失败。被测试的方法抛出DataException并捕获Throwable。在我的测试用例中,我想捕获 DataException,但如果我没有失败,我的测试就会通过。

测试方法:

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
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());
}
}

我不太确定这是否是完成这样的事情的正确方法,但这就是我到目前为止所得到的。

谢谢

最佳答案

在您的测试方法中,它不可能抛出任何东西。让所有代码都被带有 catch (Throwable t) {} 的 try block 包围意味着任何扩展 Throwable 的内容(意味着所有可能的异常和错误)都会被捕获并吃掉。因此,如果您希望测试捕获 DataException,则不会发生这种情况。将会发生的情况是,如果方法内抛出异常,则该方法返回的列表将为 null。

关于java - 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36460412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com