首页 > 解决方案 > Citrus 测试框架消息存储不保存消息

问题描述

我正在从 AMQ 代理获取消息并需要验证纯文本有效负载。柑橘似乎在纯文本验证方面非常有限,并且验证匹配器无法让我到达我需要的地方,所以我需要使用 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())") 但它返回一个错误,说找不到带有名称的消息。

请帮忙

标签: javacitrus-framework

解决方案


关键是:您应该使用 .messageName() 而不是 .name() 的下一个方法

然后消息数据将被保存到 Citrus 上下文中


推荐阅读