Mockito ArgumentMatchers.any(Class) для параметра varargs не соответствуетJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Mockito ArgumentMatchers.any(Class) для параметра varargs не соответствует

Сообщение Anonymous »

У меня есть метод тестирования с использованием Mockito 5

Код: Выделить всё

    @Test
public void test_increaseUserScore_Successful() throws CannotCreateCachedUserException {
when(cachedUserRepository
.existsById(anyLong())
).thenReturn(true);

when(leaderboardInfoRepository
.findById(anyString())
).thenReturn(Optional.of(testLeaderboardInfo));

when(cachedUserRepository
.findById(anyLong())
).thenReturn(Optional.of(userCached));

when(stringRedisTemplate
.execute(
eq(mutableLeaderboardScript), //RedisScript
anyList(), // List with Keys
any(Object.class) // Object args... which does not match
)
).thenReturn("success");

leaderboardService.increaseUserScore(userScoreEvent);

verify(stringRedisTemplate, times(1))
.execute(eq(mutableLeaderboardScript), anyList(), any(Object.class));
}
Вот проблема: строкаRedisTemplate выполнения имеет подпись (сценарий RedisScript, ключи списка, аргументы объекта...) я не могу сопоставить аргументы... с любым(Object.class).
Я либо принимаю исключение PotentialStuppingProblem:

Код: Выделить всё

org.mockito.exceptions.misusing.PotentialStubbingProblem:
Strict stubbing argument mismatch. Please check:
- this invocation of 'execute' method:
stringRedisTemplate.execute(
mutableLeaderboardScript,
[user_cached:11:dailyAttempts, user_cached:11:totalAttempts, leaderboard:lb-123:mutable, user_cached:11, global-leaderboard-stream, local-leaderboard-stream],
"11",
"10.0",
"5",
"2",
"[ZZ]",
"20",
"lb-123",
"ZZ"
);
- has following stubbing(s) with different arguments:
1. stringRedisTemplate.execute(null, [], null);
или null, что зависит от мягкой аннотации, тот же результат будет получен, если я заменю Any() на ArgumentMatchers.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -not-match
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»