第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 Spring Cloud Streams 測(cè)試錯(cuò)誤流

使用 Spring Cloud Streams 測(cè)試錯(cuò)誤流

我已經(jīng)使用 Spring Cloud Streams 啟動(dòng)了一個(gè)小型微服務(wù)。我只有兩個(gè)流綁定,如下所示: cloud:    stream:      bindings:        channelone:          destination: org.queue.app.EventsOne          contentType: application/json          group: app        channeltwo:          destination: org.queue.app.EventsTwo          contentType: application/json          group: app我使用 Serenity 開(kāi)發(fā)了組件測(cè)試,并將通道注入到我想要發(fā)送測(cè)試消息的位置:@Autowired@Qualifier(Channels.EVENTS_ONE_CHANNEL)SubscribableChannel eventsOneChannel@Autowired@Qualifier(Channels.EVENTS_TWO_CHANNEL) SubscribableChannel eventsTwoChannel在哪里:Channels.EVENTS_ONE_CHANNEL and EVENTS_TWO_CHANNEL 只是定義為字符串常量:@UtilityClasspublic class Channels {    public static final String EVENTS_ONE_CHANNEL= "channelone";    public static final String EVENTS_TWO_CHANNEL= "channeltwo";}組件測(cè)試模塊導(dǎo)入依賴項(xiàng):<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-stream-test-support</artifactId></dependency>我發(fā)送的消息如下:eventsOneChannel.send(someMessage)快樂(lè)的流程工作得很好。但是,我想測(cè)試偵聽(tīng)器無(wú)法處理消息時(shí)的錯(cuò)誤流。這是一個(gè)監(jiān)聽(tīng)器的例子:@StreamListener(Channels.EVENTS_ONE_CHANNEL)@SendTo(Channels.DTO_GENERATED)public BonusDTO receive(Message<String> message) {    try {        log.info("Received Event event with payload [{}]", message.getPayload());        return toDto(message.getPayload());    } catch (Exception ex) {        log.error("Error converting Event to DTO", ex);        throw new EventHandlingException(ex);    }}當(dāng) try/catch 拋出異常時(shí),錯(cuò)誤由服務(wù)激活器處理:@ServiceActivator(inputChannel = "org.queue.app.EventsOne.app.errors")public void handle(ErrorMessage errorMessage) {   log.info("Error");}運(yùn)行應(yīng)用程序時(shí),如果沒(méi)有 spring-cloud-stream-test,如果處理消息時(shí)發(fā)生錯(cuò)誤,則會(huì)觸發(fā)先前的服務(wù)激活并處理錯(cuò)誤。然而,在測(cè)試過(guò)程中并沒(méi)有發(fā)生同樣的情況。使用 spring-cloud-stream-test,當(dāng)監(jiān)聽(tīng)器拋出異常時(shí),從錯(cuò)誤通道激活的服務(wù)不會(huì)被調(diào)用。我也想測(cè)試錯(cuò)誤流。這是 spring-cloud-stream-test 的限制嗎?使用 spring-cloud-stream-test 時(shí)是否有任何配置、技巧或技巧可以將錯(cuò)誤消息發(fā)送到錯(cuò)誤通道?
查看完整描述

2 回答

?
鴻蒙傳說(shuō)

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

我認(rèn)為這里存在一個(gè)更大的問(wèn)題,所以我會(huì)嘗試將其闡述出來(lái),希望能夠提供一些清晰的信息

  1. 能夠使用 ServiceActivator 注釋錯(cuò)誤處理程序方法是框架提供的契約,這意味著它的測(cè)試是我們的責(zé)任。此外,您使用的機(jī)制甚至不是來(lái)自 Spring Cloud Stream,而是來(lái)自 Spring Integration。但無(wú)論如何,我質(zhì)疑應(yīng)用程序是否應(yīng)該測(cè)試它,因?yàn)槟鸁o(wú)法在應(yīng)用程序級(jí)別以任何方式影響它,因?yàn)樗皇悄墓δ?。再說(shuō)一次,這是我的觀點(diǎn),我很想知道你的想法。

  2. 在 Spring Cloud Stream 3.0.0.RC1(及后續(xù)版本)中,我們實(shí)際上已經(jīng)棄用了spring-cloud-stream-test-supportGary提到的新測(cè)試綁定器。其原因記錄在我剛剛提供的鏈接中,但請(qǐng)隨時(shí)跟進(jìn)問(wèn)題。盡管它的用法有相當(dāng)詳細(xì)的記錄,但這里是我們自己使用它的測(cè)試用例之一,供您參考。盡管參考文檔中的示例顯示了基于函數(shù)的消息處理程序,但它的工作方式與基于注釋的消息處理程序(這就是您正在使用的)相同。

  3. 說(shuō)到基于注釋的編程模型,請(qǐng)參閱我們剛剛發(fā)布的以下博客(查找更多內(nèi)容,因?yàn)樗鼈冋诠ぷ髦校渲形覀冴U述了為什么我們要放棄基于注釋的編程模型,我認(rèn)為您也應(yīng)該開(kāi)始考慮更改您的代碼。畢竟,所有更改幾乎相當(dāng)于刪除所有注釋并稍微更改消息處理程序方法的簽名以表示為函數(shù) bean

我之所以這么說(shuō)的原因有很多,但是您上面的代碼和您表達(dá)的擔(dān)憂再次提醒我為什么我們要放棄這種編程模型。

我將在這里停下來(lái),因?yàn)槲蚁嘈胚@里有很多東西需要消化,但鑒于我剛才所說(shuō)的內(nèi)容,請(qǐng)隨意跟進(jìn)更尖銳的問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2024-01-05
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

spring-cloud-stream-test 支持非?;镜臏y(cè)試綁定器;它不具備真正活頁(yè)夾的所有功能。



查看完整回答
反對(duì) 回復(fù) 2024-01-05
  • 2 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)