2 回答

TA貢獻1865條經驗 獲得超7個贊
我認為這里存在一個更大的問題,所以我會嘗試將其闡述出來,希望能夠提供一些清晰的信息
能夠使用 ServiceActivator 注釋錯誤處理程序方法是框架提供的契約,這意味著它的測試是我們的責任。此外,您使用的機制甚至不是來自 Spring Cloud Stream,而是來自 Spring Integration。但無論如何,我質疑應用程序是否應該測試它,因為您無法在應用程序級別以任何方式影響它,因為它不是您的功能。再說一次,這是我的觀點,我很想知道你的想法。
在 Spring Cloud Stream 3.0.0.RC1(及后續版本)中,我們實際上已經棄用了
spring-cloud-stream-test-support
Gary提到的新測試綁定器。其原因記錄在我剛剛提供的鏈接中,但請隨時跟進問題。盡管它的用法有相當詳細的記錄,但這里是我們自己使用它的測試用例之一,供您參考。盡管參考文檔中的示例顯示了基于函數的消息處理程序,但它的工作方式與基于注釋的消息處理程序(這就是您正在使用的)相同。說到基于注釋的編程模型,請參閱我們剛剛發布的以下博客(查找更多內容,因為它們正在工作中),其中我們闡述了為什么我們要放棄基于注釋的編程模型,我認為您也應該開始考慮更改您的代碼。畢竟,所有更改幾乎相當于刪除所有注釋并稍微更改消息處理程序方法的簽名以表示為函數 bean
https://spring.io/blog/2019/10/14/spring-cloud-stream-demystified-and-simplified
https://spring.io/blog/2019/10/17/spring-cloud-stream-functional-and-reactive
https://spring.io/blog/2019/10/25/spring-cloud-stream-and-spring-integration
我之所以這么說的原因有很多,但是您上面的代碼和您表達的擔憂再次提醒我為什么我們要放棄這種編程模型。
我將在這里停下來,因為我相信這里有很多東西需要消化,但鑒于我剛才所說的內容,請隨意跟進更尖銳的問題。
添加回答
舉報