1

我正在尝试编写一个单元测试,但我似乎无法弄清楚如何为 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 等,但我似乎无法在网上或通过我自己的方式弄清楚。

4

1 回答 1

3

使用eq(Integer.class)which 是 Mockito 中的相等匹配器

于 2012-12-05T00:14:52.377 回答