我有一个带有两个VM端点的流,它们都配置了请求/响应的交换模式。我希望在流到达第二个VM端点的流结束时评估消息,然后在下一个流消息发生之前。我想我可以通过在VM端点之前插入的拦截器来做到这一点。这可能来自Mule FunctionalTestCase吗?是否有可能以编程方式将拦截器添加到流程中??
答案 0 :(得分:1)
就个人而言,我认为在测试期间不应该真正改变流量。在这种情况下,当您将其部署到服务器时,将会运行另一个版本(尽管只是略有不同)。
相反,我认为您将流量划分为可测试的部分,并将端点地址放入单独的配置中。这样,您可以测试彼此分离的每个基于vm的流,并使用模拟流或类似方法验证行为。
vm://in-flow1 -> process -> vm://mock
vm://mock -> verify payload -> vm://in-flow2
在“真实”配置中,将“mock”更改为指向第二个vm流的内容。
您还可以详细说明完全相互模拟第一个或第二个VM流以创建不同的单元测试。
但是,如果你真的想要修改“用于测试目的的修改代码”兔洞,你可以使用一些面向方面的黑魔法来实现这一点。
看看this blogpost它是如何在骡子中完成的。
答案 1 :(得分:0)
你可以尝试使用Munit,并在流程周围运行一个间谍(它应该可以工作)。因此,您可以在流程执行后运行断言