В моем классе обслуживания это

CacheLookupPolling_Darwin CacheLookupPolling_Darwin_FRAGMENT = beanFactory.getBean(CacheLookupPolling_Darwin.class);
String s = CacheLookupPolling_Darwin_FRAGMENT.cacheLookupPolling_Darwin(String, httpHeaders);

Класс CacheLookupPolling_Darwin определяет DefaultHttpServletRequest следующим образом

private DefaultHttpServletRequest Request;

В этом классе функция cacheLookupPolling_Darwin выполняет следующую инициализацию:

Request = (DefaultHttpServletRequest) ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();

Как я могу издеваться над этим поведением запроса в моем тестовом классе, .getRequest () выдает исключение nullPointerException.

Любой совет?

0
user12505474 12 Авг 2021 в 16:24

1 ответ

Лучший ответ

Вы можете внедрить bean-компонент CacheLookupPolling_Darwin в свой тестовый класс, используя @MockBean, а затем смоделировать его поведение с помощью Mockito.

Например:

@ExtendWith(SpringExtension.class)
@SpringBootTest
public class SomeTestSuite {


    @MockBean
    private CacheLookupPolling_Darwin cacheLookupPolling_Darwin;

    @Test
    public void someTest() {
        given(cacheLookupPolling_Darwin.cacheLookupPolling_Darwin(ArgumentMatchers.anyString(), ArgumentMatchers.any()))
                .willReturn("mocked return value"));
    }

}
0
flaviuratiu 13 Авг 2021 в 15:02