我有一个 Mule 应用程序,我正在创建一些单元测试,包括一些模拟 Web 服务来测试某些功能。我正在使用测试骡流创建模拟 Web 服务,因此我正在注册 HTTP 入站端点。
当我运行测试时,我遇到了失败,因为我的一个 Spring 对象由于无法访问我的模拟 Web 服务而无法加载(Web 服务是动态加载的,因此在进行测试时,它解析为 localhost,否则它通常是外部服务)。我已经确保当我执行 getConfigResources()
时我在加载 spring 上下文 bean 之前加载了模拟 Web 服务流文件,但仍然收到错误。
有没有办法让 Mule/Spring 加载我的流程文件并启动我的 http:inbound-endpoint
在我的 Spring beans 之前?
最佳答案
您可以尝试将 Spring bean 上的 depends-on
属性设置为 Mule 流的名称,但我怀疑它是否有效,而且我也不相信它是理想的东西。
否则,我唯一能想到的就是在功能测试用例的 @Before
方法中自己初始化 Spring bean 工厂。这将使您有机会传递您与模拟 HTTP 入站端点一起使用的动态端口的值(假设您确实使用动态端口,这是推荐的方法)。
关于java - Mule 中的FunctionalTestCase - 如何在另一个流程之前加载一个流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724767/