7.3.5 测试

    这里给出save操作的测试代码,其他部分请参见示例代码。

    figure_0122_0118

    figure_0123_0119

    这里简单介绍一下测试步骤。

    1.首先建立测试环境,即这句decoratorTest.setup(this):如果使用Jpa,那么会创建GenericRepositoryJpa对象并使用LogRepository修饰,然后调用Jpa的API设置一个事务的保存点(savepoint);使用Hibernate的过程一样。

    2.创建一条user数据并提交,即genericrepository.save(user),接着我们提交事务并设置下一个保存点,即decoratorTest.commitAndRenewTx()。

    3.在完成测试验证之后,提交数据并撤销资源,即这句:decoratorTest.tear Down()。

    4.已经熟悉策略(Strategy)模式的读者阅读完代码之后不难发现,我们正是采用了策略模式撰写了此测试,DecoratorTestDrive类承担Context角色,DecoratorTest.HBTEST和DecoratorTest.JPATEST是其中的两个具体策略(Concrete Strategy):在Hibernate的上下文中,使用Hibernate的API设置保存点,提交数据和释放连接资源等;在Jpa的上下文中,使用Jpa的API设置保存点,提交数据和释放连接资源等。

    对策略模式有兴趣的读者可以参见本书第12章。