内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

記@AutoConfigureWebTestClient引發(fā)的一個坑-創(chuàng)新互聯

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

成都創(chuàng)新互聯公司長期為成百上千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為阜陽企業(yè)提供專業(yè)的成都網站設計、網站制作、外貿營銷網站建設,阜陽網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
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~~

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

新聞名稱:記@AutoConfigureWebTestClient引發(fā)的一個坑-創(chuàng)新互聯
文章網址:http://www.rwnh.cn/article44/cecpee.html

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

廣告

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

小程序開發(fā)
崇州市| 广安市| 伽师县| 淮南市| 吴堡县| 广汉市| 抚州市| 于田县| 即墨市| 宁强县| 龙口市| 射洪县| 长垣县| 灵宝市| 建阳市| 凌源市| 抚宁县| 平塘县| 新安县| 大埔区| 乾安县| 邵东县| 哈巴河县| 大余县| 宁陵县| 柳江县| 华蓥市| 万载县| 泗洪县| 大埔县| 当阳市| 浪卡子县| 长乐市| 武穴市| 通化县| 沿河| 泽州县| 克山县| 邮箱| 新疆| 陕西省|