这里DB就是一个例子.这意味着在单元测试环境中无法准备某些东西.
考虑以下路线:
DBBean dbBean = new DBBean();
from("direct:test").bean(dbBean).to("direct:someOtherLogic");
Run Code Online (Sandbox Code Playgroud)
什么时候进行单元测试,有没有办法模拟'dbBean'?在单元测试中,很难建立真正的数据库.
谢谢你的帮助.
Camel有一个测试套件,可以让你在测试之前操纵路线。然后你可以保持路线不变,然后替换部分路线,等等。它有点复杂,并且在这里记录为建议功能: http: //camel.apache.org/advicewith.html
如果 EIP 分配了 ID,通常工作会更容易,因为您可以引用这些 ID,并将其替换为其他内容。
但是,如果您知道要替换第一个 BeanDefinition,您可以执行以下操作:
weaveByType(BeanDefinition.class).selectFirst().replace().to("mock:dbBean");
Run Code Online (Sandbox Code Playgroud)
请参阅上面的链接,了解如何使用 Camel 测试套件(例如camel-test)JAR 中的建议。
请注意,建议告诉 Camel Test Kit 您正在使用建议,您可以按照该链接底部的记录进行操作。