我們使用junit,jms(activemq)和mySql來使用spring。JUnit和jms--被觸發的事件在測試中不會被消耗
我們想創建一些junit測試,在執行db之後會回滾。
爲了實現我們對每個測試使用@Transactional註釋。
問題是,我們的一個測試是調用一個發送jms消息的服務,(在測試過程中)事件是測試結束後纔會消耗事件(交易結束可能?) 這就是爲什麼在測試結束時斷言失敗。
爲什麼事件沒有被消耗馬上任何想法(PS,我們試圖用睡眠,以便讓事件被消耗掉,它不工作)
我們使用junit,jms(activemq)和mySql來使用spring。JUnit和jms--被觸發的事件在測試中不會被消耗
我們想創建一些junit測試,在執行db之後會回滾。
爲了實現我們對每個測試使用@Transactional註釋。
問題是,我們的一個測試是調用一個發送jms消息的服務,(在測試過程中)事件是測試結束後纔會消耗事件(交易結束可能?) 這就是爲什麼在測試結束時斷言失敗。
爲什麼事件沒有被消耗馬上任何想法(PS,我們試圖用睡眠,以便讓事件被消耗掉,它不工作)
首先,這不是一個單元測試...沒關係......有兩個原因消息未被消耗:
這就是交易的要點。該消息在事務提交之前不可用於消費(否則,如果某人已經看到它,該如何將其還原)?如果您不希望發送是包含事務的一部分,您可以在新事務(Propagation.REQUIRES_NEW)中進行發送。