在我的 DAO 层中,我通过调用存储过程来完成所有数据库工作。我想知道是否有人成功地使用 EasyMock 测试了他们的 DAO 层?
谢谢达米安
在我的 DAO 层中,我通过调用存储过程来完成所有数据库工作。我想知道是否有人成功地使用 EasyMock 测试了他们的 DAO 层?
谢谢达米安
我会说这是不可能的。没有办法断言(使用 EasyMock 或其他模拟框架)DAO 实际上调用了一些存储过程,验证它做了什么等。
使用 DAO + EasyMock 唯一可以做的就是模拟/存根 DAO,但是您不是在测试 DAO,而是在测试 DAO 上的协作者(如果我们说的是 MVC,通常是某种控制器)。
要对 DAO/StoredProcedures 进行集成测试,我推荐DBUnit:
如果您的 DAO 为某些业务实体提供CRUD,您可以测试 DAO 的每个操作:
testLoad
- 从数据库加载并与 (1) 进行比较testInsert
- 将新实体插入数据库,然后重新加载并比较testUpdate
- 修改现有实体,保存到数据库并重新加载/比较testDelete
- 从(1)中删除一些实体,然后尝试加载它并断言它失败(也可以检查是否没有删除其他任何内容)