2
我想使用Spring-Integration框架爲應用程序執行JUnit測試。我想測試:如何檢查是否或等待消息處理完成?
- 如果消息正確的連接到如果有任何錯誤的情況下調用適當的消息錯誤處理過程我送
- 通道服務激活處理
我正在使用JMocikt來驗證預期的方法是否被調用。我通過在消息通道上調用send
開始測試。
問題是:如何等待消息處理結束?彈簧整合產生幾個線程並立即發送消息通道返回。我已經嘗試是:
- 使用
IntegrationMBeanExporter.stopActiveComponents(false, 0)
- 它失敗,因爲線程中斷 - 試圖鏈服務激活(第一:實際調用,第二:完成通知) - 它失敗,因爲該服務激活在測試中返回
null
在這種情況下,它不能被鏈接。另外,我不喜歡它,因爲我必須在測試中改變SI配置。
任何線索?
請不要評論不執行真正的單位,但集成測試等。我知道我在做什麼。
順序屬性是否使順序執行? – Marcin 2013-04-23 14:59:15
默認情況下使用解析順序;我傾向於爲每個用戶1,2,3等添加明確的訂單屬性。如果只有一個用戶,它就不會受到傷害,並且它意圖清晰。只要' '沒有多線程任務執行程序,就會按順序調用它們。默認情況下,將在發送到通道的線程上順序調用每個訂閱者。 –
2013-04-23 17:35:24
您的回答非常有幫助,謝謝。我仍然有一個問題,事實是,錯誤通道是(據我所知)只用於異步調用。這給測試過程帶來了很大的變化。 – Marcin 2013-04-24 11:23:01