测试可完成的未来和Lambda

时间:2019-08-28 03:22:33

标签: testing lambda completable-future

我正在使用Java 8中的CompletableFuture类,我必须测试我的代码,但是我很挣扎,因为我不知道如何测试此方法,还必须测试我使用的lambda。 。现在,我使用.join方法来阻止执行,问题是测试无法识别lambda变量。

我的代码如下:

        public CompletableFuture<RegistrationInfoDTO> getRegisterInfo(InfoGuestDTO infoInvitedRequest) {
        InvitedLookUpRequest invitedLookUpRequest = generalInfoInvitedToLookUp(infoInvitedRequest);

        return getInfoInvitedService(invitedLookUpRequest)
            .thenCompose(infoRegistration -> findInitialInformation(infoRegistration.getBody(), infoInvitedRequest));
        }

这是我实施的测试:

        @Test
        public void findInvitedInfo() {
        HttpHeaders headers = getTestHttpHeaders();
        String mockURL = "url";
        HttpEntity<SeaPassInfoDTO> requestEntity = new HttpEntity<>(seaPassRequestTest, headers);

        given(kidRepository.existsById(anyString())).willReturn(true);
        when(lookUpConfig.getSystem()).thenReturn("KidsClub");
        when(lookUpConfig.getUrl()).thenReturn("anyURL");
        when(restTemplate.exchange(mockURL, HttpMethod.POST, requestEntity, GuestResponse.class))
                .thenReturn(new ResponseEntity<GuestResponse>(guestTest, HttpStatus.OK));

        RegistrationInfoDTO seaPassRegistrationInfo =
                guestGuestLookUpService.getRegistrationInformation(infoGuestDTO).join();

        assertNotNull(seaPassRegistrationInfo);
    }

运行测试时,出现错误,因为

中的infoRegistration变量
.thenCompose(infoRegistration -> findInitialInformation(infoRegistration.getBody(), infoInvitedRequest));

我想知道如何使用lambda和异步操作来测试这种类型的方法。有什么建议吗?谢谢。

0 个答案:

没有答案