Spring与OSGi测试实战:从基础到应用
1. 非OSGi测试中的内存数据库操作
在非OSGi测试中,会使用内存数据库HSQLDB来执行DDL语句。不过,这些DDL脚本只能执行一次,这由 databasePopulated
字段控制。测试开始时,Spring会实例化一个内存HSQLDB,该数据库会在整个测试方法序列(如 testFindBy*
、 testModify
、 testDelete
等)中持续存在。
在执行依赖数据库数据的测试方法之前, onSetUpBeforeTransaction
方法会被调用。但由于该方法的递归性质,会多次执行SQL DDL脚本,而表(DDL)在同一个RDBMS实例中只能创建一次,所以需要基于 databasePopulated
字段设置保护子句,确保 populateDatabase
方法和 executeSqlScript
方法只执行一次。
这些测试(包括测试类、上下文文件和DDL脚本)可以使用JUnit和Apache Ant启动。
2. OSGi测试的需求与Spring - DM测试框架
2.1 OSGi测试的需求
- 启动OSGi环境 :为保证测试环境与生产环境一致,需要一种方法来启动OSGi环境以运行测试。
- 打包测试类