我正在从 AMQ 代理获取消息,并且需要验证纯文本负载。看来 citrus 在纯文本验证方面非常有限,并且验证匹配器无法让我到达需要的位置,因此我需要使用 java 代码来处理它。
代码是使用基本的 java 对象来设置发送和接收的消息。当
sendMessageToAMQ(message);
receivePlainTextMessage(message)
.selector(message.getHeaderName()+"='"+message.getHeaderValue()+"'")
.name("sampleName");
context.getMessageStore().getMessage("sampleName").getPayload();
上下文作为 Citrus 资源在文本级别传递。上面的代码行(最后一行)抛出一个空指针,因为消息没有显示为存储的又名消息存储大小= 0。同时 echo("citrus:message(sampleName.payload())") 只打印有效负载很好。
我什至尝试过variable("msg", "citrus:message(sampleName.payload())"),但返回一个错误,指出找不到带有名称的消息。
请帮忙
最佳答案
关键是:你应该使用下一个方法 .messageName() 而不是 .name()
然后消息数据将被保存到 Citrus 上下文中
关于java - Citrus Test Framework 消息存储不保存消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61371669/