1

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

问题是关于测试的。通常我实际上会使用 H2 来测试这个服务层来提供 DB,将 DAO、entityManager 等与 spring 连接在一起(我知道有些人不会这样做,但我会这样做,请耐心等待)。但我们将使用蓝图进行熔断。如何对这一层进行单元测试?让我的测试子类 CamelBlueprintTestSupport 不起作用,这需要一条路线。不能使用 SpringJUnit4ClassRunner (尽管目前确实可以使用它)因为它与弹簧连接,当在容器中运行时,我们将与蓝图连接。

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

4

2 回答 2

0

您可以使用骆驼测试蓝图正在使用的 pojosr:https ://code.google.com/p/pojosr/

虽然 pojosr 不是一个完整的 OSGi 环境,但您可以做的事情会有一些限制。

对于 camel-test-blueprint,您可能能够覆盖方法 isUseRouteBuilder 并返回 false,那么它不应该期望路由。

于 2013-08-18T12:29:50.123 回答
0

您可以尝试的一种方法是使用pax 考试。它允许在完整的 OSGi 环境中运行测试。因此,您可以以黑盒方式安装您的真实捆绑包测试它。

于 2013-08-15T19:56:36.293 回答