是否可以在Mule FunctionalTestCase中的VM端点之前通过程序添加拦截器?如果是,如何



我有一个流,其中有两个VM端点,都配置了请求/响应的交换模式。我想在流到达第二个VM端点时,在下一个流带着消息开始之前,在流的末尾评估消息。我想我可以通过在VM端点之前插入一个拦截器来实现这一点。这在Mule FunctionalTestCase中可能吗?是否可以通过程序将拦截器添加到流中。。?

就我个人而言,我认为在测试过程中不应该真正更改流。在这种情况下,当您将另一个版本部署到服务器时,它将运行(尽管略有不同(。

相反,我认为您应该将流划分为可测试的部分,并将端点地址放入单独的配置中。通过这种方式,您可以测试每个相互分离的基于vm的流,并使用mock流或类似的方法验证行为。

vm://in-flow1 -> process -> vm://mock
vm://mock -> verify payload -> vm://in-flow2

在"真实"配置中,将"mock"更改为指向第二个vm流的内容。

您还可以详细说明如何模拟第一个或第二个VM流,以创建不同的单元测试。

然而,如果你真的想进入"为测试目的修改代码"的兔子洞,你可能会使用一些面向方面的黑魔法来实现这一点。

看看这篇博客文章,它是如何在mule中完成的。

您可以尝试使用Munit,并在流周围运行间谍(它应该可以工作(。因此,您可以在流执行之后运行断言

https://github.com/mulesoft/munit

最新更新