如何为Integer.class编写匹配器

时间:2012-12-05 00:03:25

标签: java junit mockito

我正在尝试编写单元测试,但我似乎无法弄清楚如何为Integer.class编写Mockito匹配器。

我正在尝试测试以下方法:

public List<Integer> getAllParticipatingChallengesByTeamId(int teamId) {
        List<Integer> challengeIds = new ArrayList<Integer>();
        MapSqlParameterSource args = new MapSqlParameterSource();

        args.addValue("teamId", teamId);
        try {
            challengeIds = jdbcTemplate.queryForList(SQL_STRING, args, Integer.class);
        } catch (Exception e) {
            challengeIds = null;
        }

        return challengeIds;
    }

通过对我的模拟jdbcTemplate进行存根来使用这样的匹配器返回一个值:

    when(mockJdbc.queryForList(anyString(), any(SqlParameterSource.class), any(Integer.class)).thenReturn(integerList);

但当然匹配任何整数,而不是任何类!我尝试了Class.class等等,但我似乎无法在网上或通过我自己的方式解决它。

1 个答案:

答案 0 :(得分:3)

使用Mockito中等号匹配器eq(Integer.class)