Junit 我正在尝试使用easymock返回列表 List resArrivalList=new ArrayList(); ReservationArrival reservArr=新的ReservationArrival(); reservArr.setArrivalStatus(“已发送”); reservArr.setReservationArrivalId(98888L); reservArr.setDispatchTime(“2018-03-07 17:29:30”); EasyMock.replay(重传列表); expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class)), anyObject(MapSqlParameterSource.class), EasyMock.anyObject(reservationArrivalApper.class)).andReturn(resArrivalList);

Junit 我正在尝试使用easymock返回列表 List resArrivalList=new ArrayList(); ReservationArrival reservArr=新的ReservationArrival(); reservArr.setArrivalStatus(“已发送”); reservArr.setReservationArrivalId(98888L); reservArr.setDispatchTime(“2018-03-07 17:29:30”); EasyMock.replay(重传列表); expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class)), anyObject(MapSqlParameterSource.class), EasyMock.anyObject(reservationArrivalApper.class)).andReturn(resArrivalList);,junit,powermock,easymock,Junit,Powermock,Easymock,我的模拟对象namedParameterJdbcTemplate返回空列表您需要将模拟服务(namedParameterJdbcTemplate)设置为重播模式,而不是resArrivalList,它只是模拟用作返回值的普通对象。 此外,回放调用必须在模拟设置之后进行 像这样的方法应该会奏效: List<ReservationArrival> resArrivalList = new ArrayList<>(); ReservationArrival reservArr

我的模拟对象namedParameterJdbcTemplate返回空列表

您需要将模拟服务(
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");


EasyMock.replay( resArrivalList );

expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class),
        EasyMock.anyObject(MapSqlParameterSource.class),
        EasyMock.anyObject(ReservationArrivalMapper.class))).andReturn(resArrivalList);
List resArrivalList=new ArrayList();
ReservationArrival reservArr=新的ReservationArrival();
reservArr.setArrivalStatus(“已发送”);
reservArr.setReservationArrivalId(98888L);
reservArr.setDispatchTime(“2018-03-07 17:29:30”);
expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class)),
anyObject(MapSqlParameterSource.class),
EasyMock.anyObject(reservationArrivalApper.class)).andReturn(resArrivalList);
replay(namedParameterJdbcTemplate);

您需要将模拟服务(
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");


EasyMock.replay( resArrivalList );

expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class),
        EasyMock.anyObject(MapSqlParameterSource.class),
        EasyMock.anyObject(ReservationArrivalMapper.class))).andReturn(resArrivalList);
List resArrivalList=new ArrayList();
ReservationArrival reservArr=新的ReservationArrival();
reservArr.setArrivalStatus(“已发送”);
reservArr.setReservationArrivalId(98888L);
reservArr.setDispatchTime(“2018-03-07 17:29:30”);
expect(namedParameterJdbcTemplate.query(EasyMock.anyObject(String.class)),
anyObject(MapSqlParameterSource.class),
EasyMock.anyObject(reservationArrivalApper.class)).andReturn(resArrivalList);
replay(namedParameterJdbcTemplate);

我注意到您的问题仍然“开放”——因为您没有接受答案。请看一看,然后决定是否要回答。或者让我知道是否有什么我可以做的,以加强我的投入,使其值得接受。接受帮助未来的读者确定问题是否得到解决,并对花时间回答你的人表示感谢。谢谢我注意到你的问题仍然是“开放的”——因为你没有接受答案。请看一看,然后决定是否要回答。或者让我知道是否有什么我可以做的,以加强我的投入,使其值得接受。接受帮助未来的读者确定问题是否得到解决,并对花时间回答你的人表示感谢。谢谢