2012-04-03 79 views
2

在我的系統中,我使用Spring和JMS(HornetQ)。JMS和Spring測試

在系統上運行測試時,我的一些測試將JMS事件發送到消息隊列。 JMS爲每個消息打開一個線程並運行它們。但是,我必須等待JMS線程結束後才能繼續進行下一個測試。

由於主測試線程不知道另一個線程在與測試相關的後臺運行,它將退出並在JMS線程結束之前轉到下一個測試。這讓我的生活變得生機勃勃,看到我需要編寫JMS鉤子,這樣我才能繼續前進,等待JMS線程完成。無論我如何嘗試,我都無法捕捉到所有這些線程。

我真的很想做的事情是我正在向運行測試的同一線程中運行的消息隊列運行事件。這樣消息處理必須在測試完成之前完成。我怎樣才能做到這一點?

- 編輯完成後 - 從我問這個問題到現在還沒有答案。沒有人真的有可能在測試環境中爲jms實現這樣一個簡單的解決方案嗎?

+0

你有沒有在HornetQ的手動檢查的屬性以「BlockOn ......」? http://docs.jboss.org/hornetq/2.2.5.Final/user-manual/en/html_single/index.html#d0e7682 – 2012-04-04 13:55:35

+0

謝謝。我嘗試過,但似乎沒有工作。任何其他想法? – ShinySpiderdude 2012-04-06 12:39:29

回答

2

如果您想進行一些異步測試,請查看
Awaitility

我已經使用它,它的工作相當不錯:)

+0

我知道這一個,但這是一個解決方法。我想同步訪問JMS – ShinySpiderdude 2012-04-17 16:06:33