dao抽取通用方法java_Java集成测试(DAO层,通用CRUD操作)

我一直在寻找一种优化的方法来为DAO层(Java,Spring,Hibernate)创建集成测试,主要针对通用CRUD操作(readAll(),getById(),insert(),update(),delete()等。 ),几个月。到目前为止,我发现的任何一种方法都是1)太费力的方法,其代码量与真实源代码相当或2)太复杂/不可读/不灵活的方法。

我迄今为止进行的一项尝试如下:

如果我们说像这样的通用DAO接口:

public interface GenericDAO {

Long insert(T t);

void update(T t);

List getAll();

T getById(Long id);

void delete(T t);

}然后我们可以提出一些模板方法(因为所有的测试都是默认随机执行​​的)来执行所有那些适用于每个类的CRUD操作:

@Transactional

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations={"/test-context.xml"})

public abstract class AbstractDAOTest {

@Test

public void test() {

insert();

read();

readAll();

update();

delete();

}

protected abstract void insert();

protected abstract void read();

protected abstract void readAll();

protected abstract void update();

protected abstract void delete();}

然后,我们通过Spring的测试配置和样本数据,并在真正的继承者中实现所有这些方法。

这对我仍然不好。 (只有一种实际的测试方法需要耗费时间来创建测试环境等)

那么,为DAO层创建集成测试的最容易识别和友好的方法是什么?先谢谢你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值