首页 > 解决方案 > 我正在尝试使用 easymock 返回列表

问题描述

List<ReservationArrival> resArrivalList = new ArrayList<>();

ReservationArrival reservArr = new ReservationArrival();

reservArr.setArrivalStatus("DISPATCHED");
reservArr.setReservationArrivalId(9888888L);
reservArr.setDispatchTime("2018-03-07 17:29:30");


EasyMock.replay( resArrivalList );

expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class),
        EasyMock.anyObject(MapSqlParameterSource.class),
        EasyMock.anyObject(ReservationArrivalMapper.class))).andReturn(resArrivalList);

我的名为ParameterJdbcTemplate 的模拟对象返回空列表

标签: junitpowermockeasymock

解决方案


您需要将模拟服务(namedParameterJdbcTemplate)设置为重播模式,resArrivalList而不是只是一个普通对象用作模拟的返回值。此外,重播调用必须在模拟设置之后。

像这样的东西应该工作:

List<ReservationArrival> resArrivalList = new ArrayList<>();

ReservationArrival reservArr = new ReservationArrival();

reservArr.setArrivalStatus("DISPATCHED");
reservArr.setReservationArrivalId(9888888L);
reservArr.setDispatchTime("2018-03-07 17:29:30");


expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class),
        EasyMock.anyObject(MapSqlParameterSource.class),
        EasyMock.anyObject(ReservationArrivalMapper.class))).andReturn(resArrivalList);

EasyMock.replay( namedParameterJdbcTemplate );

推荐阅读