WEB开发网
开发学院软件开发Java 一种轻量级、可重用、可扩展的 OSGi 应用程序测试... 阅读

一种轻量级、可重用、可扩展的 OSGi 应用程序测试框架

 2009-12-01 00:00:00 来源:WEB开发网   
核心提示: OSGi 的架构为 Java 程序的模块化开发和模块的重用提供了很多便利,但是也正是由于 OSGi 中架构的一些限制,一种轻量级、可重用、可扩展的 OSGi 应用程序测试框架(2),使得目前的 Java 测试方法(比如 JUnit)无法直接应用于 OSGi 运行时框架,在 OSGi 中使用 Bu

OSGi 的架构为 Java 程序的模块化开发和模块的重用提供了很多便利,但是也正是由于 OSGi 中架构的一些限制,使得目前的 Java 测试方法(比如 JUnit)无法直接应用于 OSGi 运行时框架。

在 OSGi 中使用 Bundle 来定义个程序模块,Bundle 包含了一组 Java 类以及一些附加的描述信息。Bundle 的生命周期由 OSGi 运行是框架维护,而且 Bundle 之间往往具有相互依赖和调用的关系。所以 OSGi 下的测试用例,需要运行在 OSGi 的运行框架中,并且往往需要多个 Bundle 之间的交互。而传统的 JUnit 测试方法,并没有提供测试用例在 OSGi 下的运行方法。

Bundle 对其包含的 Java 包有严格的访问限制,只有少数的接口包能够被其他的 Bundle 访问到。而在测试中,我们经常需要测试 Bundle 内非 Public 的包。如何避开 Bundle 的访问限制,测试 Bundle 内部包成为 OSGi 测试中的一个新问题。

在编写测试代码是,我们总是希望做到测试代码能够和业务代码分离,也就是说在能够很好的运行测试用例的同时,产品发布时又不需要太多的工作来分离测试代码。在 OSGi 框架下,如何分离测试代码和业务代码,同时又不影响测试代码访问业务代码,也成为一个新的问题。

本文将针对以上提到的问题,介绍一种轻量级、可重用、可扩展的 OSGi 测试方案,并用具体的例子来介绍如何使用该方法。

基本原理

如图 1 所示,我们将测试代码(Test Suite)封装在单独的 Bundle 运行在 OSGi 中。并且提供了 Test Framework Bundle 来管理测试 Bundle。Test Framework Bundle 提供了用户接口,用户可以通过调用该接口来运行相应的测试用例,并且得到测试结果。

图 1. 测试框架基本原理

一种轻量级、可重用、可扩展的 OSGi 应用程序测试框架

上一页  1 2 3 4 5 6 7  下一页

Tags:轻量级 重用 扩展

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接