【问题标题】:Mule Dataweave Assertion Function haveKey is not validating keys with null valuesMule Dataweave 断言函数 haveKey 未验证具有空值的键
【发布时间】:2021-12-11 10:03:33
【问题描述】:

有谁知道 DW 断言函数 hasKey 是否应该验证键值为 null 的键对?如果值为 null,则 MUnit 似乎无法断言,如下所示:
Expected: to contain key carelineId
Actual: {
carelineId: null
}
at org.mule.munit.assertion.internal.AssertModule.assertMatcherResult(AssertModule.java:77

很明显,密钥在那里,但它的值为 null。谢谢!

编辑:

输入是一个Transform Message set变量:

%dw 2.0 output application/java  
import * from dw::test::Asserts   
--- 
{
   carelineId: null 
} 

表达式为:

import * from dw::test::Asserts  
---  
vars.theInput must haveKey('carelineId')

【问题讨论】:

  • 实际的表达式和输入是什么,包括输入的类? Mule 和 Munit 有哪些版本?
  • 感谢您的检查。输入是一个转换消息集变量:%dw 2.0 output application/java import * from dw::test::Asserts --- { carelineId: null },表达式是:import * from dw::test::Asserts --- vars.theInput must haveKey('carelineId') 我也用这些编辑了帖子。谢谢!

标签: dataweave mulesoft munit


【解决方案1】:

我认为问题在于 haveKey() 将匹配器用作参数,而不是字符串。示例:

#[MunitTools::hasKey(MunitTools::equalTo('myKey'))

请参阅文档https://docs.mulesoft.com/munit/2.3/munit-matchers

请注意,这些是 Munit 断言和匹配器。

【讨论】:

  • 感谢您的更新。我没有对此进行检查,但通过在最新修补的运行时 (4.3.0-20210915) 上运行 MUnit 测试解决了这个问题。这个问题似乎在之前的补丁中得到了修复,但是 MUnit 测试是在没有补丁的第一个发布的 4.3.0 运行时上运行的,因此失败了。
猜你喜欢
  • 2012-12-15
  • 1970-01-01
  • 2017-06-04
  • 2018-02-24
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 2021-02-10
  • 2020-08-17
相关资源
最近更新 更多