Java 在JUnit中填充数据

Java 在JUnit中填充数据,java,junit,Java,Junit,我正在为一个简短的方法编写一个JUnit测试用例,我想我正在设置所有必需的字段,以防止出现任何NullPointerException,但是filters总是Null,因此我的测试不会进入循环ILocalPostProcessFilter是一个接口,由抽象类BaseExceptionPostProcessFilter实现,该抽象类由具体类MessageToExceptionPostProcessFilter扩展。我还没有任何断言,所以请忽略它 试验方法: protected <T ext

我正在为一个简短的方法编写一个JUnit测试用例,我想我正在设置所有必需的字段,以防止出现任何
NullPointerException
,但是
filters
总是
Null
,因此我的测试不会进入循环
ILocalPostProcessFilter
是一个接口,由抽象类
BaseExceptionPostProcessFilter
实现,该抽象类由具体类
MessageToExceptionPostProcessFilter
扩展。我还没有任何断言,所以请忽略它

试验方法:

protected  <T extends BaseServiceResponse> T processLocalPostProcessFilters(T resp, Response cResp) throws EISClientException
{
    List<ILocalPostProcessFilter> filters = config.getLocalPostProcessFilters();
    if(filters == null)
        return resp;
    T bResp = resp;
    for(ILocalPostProcessFilter filter : filters)
    {
        bResp = filter.postProcess(resp, cResp);
    }
    return bResp;
}
受保护的T processLocalPostProcessFilters(T resp,Response cResp)抛出EISClientException
{
List filters=config.getLocalPostProcessFilters();
if(过滤器==null)
返回响应;
T-bResp=resp;
用于(ILocalPostProcessFilter过滤器:过滤器)
{
bResp=过滤器后处理(resp,cResp);
}
返回bResp;
}
JUnit测试:

@Test
    public void testProcessLocalPostProcessFilters() throws Exception {
        TestClass baseClient = new TestClass(new ClientConfiguration(), "serviceURL");

        CatastropheServiceResponse catastropheServiceResponse = new CatastropheServiceResponse();
        CatastropheResponse entity = new CatastropheResponse();

        catastropheServiceResponse.setContentLength(10);
        catastropheServiceResponse.setContentType(ContentType.XML);

        entity.setSource(ResponseSourceEnum.CATASTROPHE);
        entity.setTransactionId("01234");

        catastropheServiceResponse.setEntity(entity);

        Response response = mock(Response.class);

        ILocalPostProcessFilter filter = new MessageToExceptionPostProcessFilter();
        ((BaseExceptionPostProcessFilter) filter).setHttpStatusCode("200");
        ((BaseExceptionPostProcessFilter) filter).setCondition(ConditionOperator.OR);

        List<ILocalPostProcessFilter> listFilter = new ArrayList<>();
        listFilter.add(filter);

        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setLocalPostProcessFilters(listFilter);

        baseClient.processLocalPostProcessFilters(catastropheServiceResponse, response);

    }
@测试
public void testProcessLocalPostProcessFilters()引发异常{
TestClass baseClient=newTestClass(new ClientConfiguration(),“serviceURL”);
CatastropheServiceResponse CatastropheServiceResponse=新的CatastropheServiceResponse();
CatastropheResponse实体=新的CatastropheResponse();
catastropheServiceResponse.setContentLength(10);
catastropheServiceResponse.setContentType(ContentType.XML);
实体.setSource(响应源.灾难);
实体。setTransactionId(“01234”);
catastropheServiceResponse.setEntity(实体);
Response=mock(Response.class);
ILocalPostProcessFilter=新消息ToExceptionPostProcessFilter();
((BaseExceptionPostProcessFilter)过滤器);
((BaseExceptionPostProcessFilter)过滤器).setCondition(ConditionOperator.OR);
List listFilter=new ArrayList();
添加(过滤器);
ClientConfiguration ClientConfiguration=新的ClientConfiguration();
setLocalPostProcessFilters(listFilter);
processLocalPostProcessFilters(catastropheServiceResponse,response);
}
不确定填充过滤器需要做什么

任何帮助都将不胜感激


谢谢

您正在为
ClientConfiguration
的另一个实例添加筛选器,该实例与您正在调用的
processLocalPostProcessFilters
新建
TestClass
时使用的实例不同,它通过添加
ClientConfiguration
的同一个实例来工作。非常感谢你。