在嵌入式EJB容器中进行测试
1. 持久化单元的数据初始化
在JUnit测试会话中,像启动Derby和嵌入式EJB容器这样的步骤只需执行一次,而其他初始化步骤则需在每次JUnit测试前执行。这些每次测试前的初始化步骤会放在用 @Before
注解的方法中,示例代码如下:
@Before
public void setUp() {
// 初始化领域模型中的数据
PopulateDemoData.resetData("Chapter13-EmbeddableEJBTests-ResourceLocal", System.out);
}
为确保每个单元测试开始时数据库中的数据一致,我们会执行一个脚本来初始化数据库并将数据重置到期望状态。这里传递持久化单元的名称是为了能在不同应用上下文中复用。
我们可以为相同的实体类定义多个持久化单元,每个持久化单元可以指定不同的数据库连接、模式生成计划、持久化提供程序或其他配置选项。新定义的持久化单元可映射到适合测试目的的数据库连接。
2. 使用“jdbc/__default”连接
GlassFish预配置了一个适合嵌入式EJB容器使用的连接,名为 jdbc/__default
。它在请求时自动创建,嵌入式GlassFish服务器关闭时自动删除。
以下是 persistence.xml
文件,包含两个持久化单元:
&