使用FUSE ESB对DAO层进行单元测试

时间:2013-08-15 08:11:32

标签: jpa dao fuseesb blueprint-osgi

我们正在使用Fuse ESB(Camel,OSGi,blueprint)来处理一些尖峰,以提供一些组件。我们的EA具有强制架构,即:REST控制器使用路由来调用CXF WS。这将本地java类作为服务调用,例如,执行CRUD操作。这些使用JPA启用的DAO /实体。在设计而不是现实世界中,一切似乎都是学术性的,但那是另一个故事。

问题是关于测试。通常我会使用H2来测试这个服务层来提供数据库,将DAO,entityManager等与spring连接起来(我知道有些人不会这样做,但我会这样做,请耐心等待)。但我们将使用蓝图保险丝。我该如何对这一层进行单元测试?将我的测试引入子类CamelBlueprintTestSupport不起作用,这需要一个路由。不能使用SpringJUnit4ClassRunner(虽然目前正在使用它),因为这与spring连接,当在容器中运行时我们将使用蓝图连接。

那么我们如何对此进行单元测试呢?如何在基于蓝图的单元测试中实例化这组类?我们可以吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试的一种方法是使用pax exam。它允许在完整的OSGi环境中运行测试。所以你可以用黑盒方式安装真正的捆绑测试。

答案 1 :(得分:0)

你可以使用polosr,这是camel-test-blueprint正在使用的:https://code.google.com/p/pojosr/

虽然pojosr不是一个完整的OSGi环境,但是你可以做一些限制。

对于camel-test-blueprint,您可以覆盖方法isUseRouteBuilder并返回false,然后它不应该期望路由。