gpt4 book ai didi

java - 如何在 Java 中对 DAO 应用单元测试

转载 作者:搜寻专家 更新时间:2023-11-01 01:13:14 31 4
gpt4 key购买 nike

我不知道如何在数据访问层上应用单元测试。我一直想知道是否应该测试数据访问层。在我的公司,我们有稳定的数据库来存储单元测试数据和测试数据访问层,通过运行数据访问对象并检查它们从稳定数据库中获取的数据。

为了通过单元测试,稳定数据库中的数据不能再修改。我认为对此有更好的解决方案。如果我没记错的话,模拟对象无法对 SQL 语句和 ResultSet 映射执行测试。

对 DAO 进行单元测试的最佳方法是什么?使用 TDD 有更好的方法吗?

最佳答案

首先,根据大多数定义,“单元”测试不依赖于数据库等外部系统。您想要创建所谓的“功能”或“集成”测试。在实践中,这些类型的测试将以与单元测试相同的方式实现,使用类似 Junit 的东西,但您应该将它们与单元测试分开,单元测试应该运行得非常快,并且在数据库关闭或数据更改时不会中断。

其次,尽量将大部分业务逻辑放在 DAO 之外,而是将其放入服务 POJO 层,这样您就可以在不涉及数据库的情况下测试业务逻辑。

接下来,为 DAO 设置测试的理想方法是从一个空数据库开始,并用测试数据加载它(通常使用 DAO 本身),然后针对已知且可写的测试运行 DAO 测试数据集。如果您有幸拥有一个只读数据库,您概述的稳定数据库方法将起作用,但大多数系统都是读/写数据库。

最后,测试 DAO 很有值(value)。数据库查询通常是系统中最脆弱的部分,您不希望等到将它们部署到生产环境时才发现它们正在崩溃。

关于java - 如何在 Java 中对 DAO 应用单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18326564/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com