以下のようなテストを記述したいと思います。
state-info-1
にはsrc/main
というリスナーがあります。
取得したメッセージにいくつかの変更を加え、activemqトピックstate-info-2
で新しいメッセージを公開します。
ダミーメッセージを作成して、activemqトピックstate-info-1
に公開します。
最後に、トピックstate-info-2
で受信したメッセージが期待どおりであることを確認します。
私のリスナーは似ています。
@JmsListener(destination = "state-info-1", containerFactory = "connFactory")
public void receiveMessage(Message payload) {
// Do Stuff and Publish to state-info-2
}
これのテストを書くことは可能ですか?または私は他の方法でそれをしなければなりませんか?
しかし、これは私が期待していることではありません。
ヘルプや正しい方向へのプッシュで十分です。
お時間をいただきありがとうございます。
@SpringBootApplication
public class So42803627Application {
public static void main(String[] args) {
SpringApplication.run(So42803627Application.class, args);
}
@Autowired
private JmsTemplate jmsTemplate;
@JmsListener(destination = "foo")
public void handle(String in) {
this.jmsTemplate.convertAndSend("bar", in.toUpperCase());
}
}
そして
@RunWith(SpringRunner.class)
@SpringBootTest
public class So42803627ApplicationTests {
@Autowired
private JmsTemplate jmsTemplate;
@Test
public void test() {
this.jmsTemplate.convertAndSend("foo", "Hello, world!");
this.jmsTemplate.setReceiveTimeout(10_000);
assertThat(this.jmsTemplate.receiveAndConvert("bar")).isEqualTo("HELLO, WORLD!");
}
}