我可以使用Camel模拟外部系统请求/回复吗?

时间:2016-09-20 20:13:24

标签: java testing mocking apache-camel

我们正在开始设计Java系统,该系统必须与许多现有的外部系统集成。为了支持那些外部系统不存在的DEV环境中的测试,我想知道Camel是否会提供基于配置的方法来支持模拟这些外部系统,在每个请求中记录数据并返回预期的响应。例如,每个测试场景都有一个与每个外部系统预期交互的已定义序列:

enter image description here

其中VAL_X是每个请求/响应的各个字段。从测试的角度来看,我在DEV环境中寻找一种基于配置的方法来指定而不是在SYS_A上实际调用REQUEST_A1,而是将该请求中的数据附加到文件并从另一个文件解组值以创建响应对象。通过这种方法,我将能够构建一组具有预期结果的测试场景并自动化我的测试套件。请注意,我不是在谈论编写单元测试来测试我的界面 - 我想在DEV环境中部署我的应用程序(使用备用配置),然后我可以与我的应用程序进行交互,这个备用配置记录请求数据到文件并从文件解组先前创建的预期结果,以确认我部署的应用程序正常运行。我知道我可以编写提供此功能的每个外部系统的替代实现,但我希望有一种方法可以利用Camel的内置功能来一般地允许这种方法。有没有人有其他方法的建议或建议?

1 个答案:

答案 0 :(得分:0)

对于给定的接口“OrderService”:

  1. 功能实现“OrderServiceImpl”
  2. 模拟/测试实现“OrderServiceMockImpl” 一个。让OderServiceMockImpl加载并使用text / csv文件中的数据
  3. 使用蓝图指定要用作支持接口的实现的类。 一个。使用config admin(aka compendium)动态连接配置
  4. jar / bundle将包含两个实现类
  5. 这将允许您在运行时交换实现,您可以根据需要在模拟和功能实现之间轻松切换。