java - 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())") 但它返回一个错误,说找不到带有名称的消息。
请帮忙
解决方案
关键是:您应该使用 .messageName() 而不是 .name() 的下一个方法
然后消息数据将被保存到 Citrus 上下文中
推荐阅读
- typescript - 在限制变量类型的同时保持推断类型
- angular - 如何从 Ionic 3 上的 http 帖子中读取 set-cookie 标头
- r - purrr::pmap 与匿名函数对比 lapply
- android - Android Retrofit + Rxjava:如何在 non200 代码上获得响应?
- cakephp - Cakephp3:CASE语句的结果被强制为字符串,需要整数
- java - UDP - 未收到数据报 (Java)
- r - 第二次迭代时出现 Cran R 循环错误 - 获取所有 NA
- reactjs - 如何从 React 访问其他 .js 文件
- docker - Kubernetes - 覆盖卷
- javascript - 检测引荐来源正则表达式