private String mainMethod(String param) {
String response = client.internalCall(EnumValue, Map.of(
"key1", param,
"key2", 1
), String.class);
}
Где это определение InternalCall
public T internalCall(final MyEnum e, final Map params, Class classType) {
final String response = internalCall(e, Collections.unmodifiableMap(params));
return convert(response, classType);
}
И мой тестовый класс для основного метода таков:
@Test
void test() {
Map map = Map.of(
"key1", "123",
"key2", 1
);
Mockito.when(client.internalCall(eq(MyEnum.EnumValue), anyMap(), eq(String.class))).thenReturn("Success");
ReflectionTestUtils.invokeMethod(serviceClass, "mainMethod", "123456");
}
Но Mock не работает, и вместо возврата строки «Успех» я получаю
org. ockito.Exceptions.misusing.UnnecessaryStubbingException:
Обнаружены ненужные заглушки. Чистый и удобный в сопровождении тестовый код
не требует никакого ненужного кода. Следующие заглушки не нужны
(нажмите, чтобы перейти к соответствующей строке кода):
- -> по адресу com.zzz.xxxx.ServiceClassTest.test( ServiceClassTest.java:271)
Пожалуйста, удалите ненужные заглушки или используйте «мягкую» строгость. Дополнительная
информация: javadoc для класса UnnecessaryStubbingException.
org.mockito.junit.jupiter.MockitoExtension.afterEach(MockitoExtension. java:197)
в java.base/java.util.ArrayList.forEach(ArrayList.java:1511) в
java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Я пробовал много вещей, например
Mockito.when(client.internalCall(any(), any(), any())).thenReturn("Success");
но ничего из этого не работает. Я не уверен, почему Mockito не распознает мой макет.
Есть идеи?
РЕДАКТИРОВАТЬ:
Извините, я забыл добавить некоторые подробности. Мой тестовый класс выглядит так
@ExtendWith(MockitoExtension.class)
class ServiceImplTest {
@InjectMocks
ServiceClass serviceClass;
@Mock
Client client;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}
@Test
void test() {
Map map = Map.of(
"key1", "123",
"key2", 1
);
Mockito.when(vbsmClient.internalCall(eq(MyEnum.EnumValue), anyMap(), eq(String.class))).thenReturn("Success");
ReflectionTestUtils.invokeMethod(serviceClass, "mainMethod", "123456");
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... k-a-method
Мобильная версия