【发布时间】:2011-10-23 16:00:49
【问题描述】:
我目前正在考虑“如何设计一个 OSGi 组件,以便使用 jUnit 和 Mockito 等框架轻松为其编写测试”。
Mocking inter-bundle-dependencies 非常容易,因为 OSGi 加强了 DIP (依赖倒置原则) 并且通常存在注入器方法(例如 setter)。
但是捆绑内部依赖项呢?
例如查看this case。现在我想把它带入一个 OSGi 上下文中......我们想在 OSGi 平台中提供任何类型的网络协议作为声明性服务,并想编写单元测试来测试直接与套接字对象。
如果我们将套接字创建重构为一个单独但仍捆绑内部 POJO (Plain Old Java Object) 类,我们应该如何将其注入协议实现中?
- 在单元测试中,我们可以简单地使用 setter 方法,但谁会在 OSGi 容器中为我们执行此操作?
- 子类化测试类并覆盖创建者方法只有在测试类未声明为最终类时才有效。
【问题讨论】:
标签: java unit-testing osgi dependency-inversion