bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

記@AutoConfigureWebTestClient引發的一個坑-創新互聯

在spring boot項目調試單測時,默認webTestClient的請求超時時間為5秒,稍微在斷點出停留,便會觸發請求超時的異常

成都創新互聯公司長期為成百上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為阜陽企業提供專業的成都網站設計、網站制作、外貿營銷網站建設阜陽網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。
Timeout on blocking read for 5000000000 NANOSECONDS
java.lang.IllegalStateException: Timeout on blocking read for 5000000000 NANOSECONDS
	at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:123)
	at reactor.core.publisher.Mono.block(Mono.java:1731)

因此會在類上添加修改超時時間
@AutoConfigureWebTestClient(timeout = “PT10M”)

@ContextConfiguration
@ComponentScan("com.crypto.reward.ops")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ExtendWith(TestDataSetup.class)
@AutoConfigureWebTestClient(timeout = "PT10M")
public abstract class ApplicationTest {...
}

然而,項目的jackson配置的是snake格式,

@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {return builder ->builder.modules(modules())
            .failOnUnknownProperties(false)
            .propertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE)
            .serializationInclusion(JsonInclude.Include.NON_ABSENT)
            .featuresToEnable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE)
            ;
}

此時mock的數據便會無法正常解析,因為@AutoConfigureWebTestClient注解引入后,導致response.bodyToMono按照camel格式解析,造成無法正常反序列化

publicMono>getResultMono(ParameterizedTypeReference>resultType, String uri) {return webClient.get()
                .uri(uri)
                .exchangeToMono(response ->{if (response.statusCode().equals(HttpStatus.OK)) {return response.bodyToMono(resultType);
                    } else {return response.createException()
                                .flatMap(e ->Mono.just(Result.ofFail(e.getStatusText(), e.getMessage())));
                    }
                });
    }

測試用例如

PageRespDtorespDto = new PageRespDto<>();
Result>resp = Result.ofSuccess(respDto);
mockWebServer.enqueue(new MockResponse()
        .setResponseCode(200)
        .setBody(objectMapper.writeValueAsString(resp))
        .addHeader("Content-Type", "Application/json"));
webTestClient.method(httpMethod).uri(uri)
        .cookie(cookieName, sessionId)
        .exchange()
        .expectStatus()
        .value(status ->{assertThat(status).isEqualTo(HttpStatus.OK.value());
        })
        .expectBody(type)
        .value(result ->{assertThat(result.isOk()).isTrue();
        });

具體原理還未知,有知道的大佬麻煩評論告知,thanks~~

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

新聞名稱:記@AutoConfigureWebTestClient引發的一個坑-創新互聯
文章網址:http://vcdvsql.cn/article44/cecpee.html

成都網站建設公司_創新互聯,為您提供手機網站建設品牌網站設計網站設計響應式網站用戶體驗面包屑導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發