V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
louchenabc
V2EX  ›  程序员

[技术交流] 大家所在的公司都是如何做 DAO 层的单元测试的?

  •  
  •   louchenabc ·
    lcomplete · 2021-07-07 23:14:38 +08:00 · 1935 次点击
    这是一个创建于 1268 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先分享下我在 DAO 层单元测试的经验:

    [Java 开发实战] 高级工程师的自我修养之单元测试(一):DAO 层测试

    大家所在的公司都是如何做 DAO 层的单元测试的呢?

    7 条回复    2021-07-09 00:37:16 +08:00
    Fu4ng
        1
    Fu4ng  
       2021-07-07 23:17:43 +08:00
    唉,一把辛酸泪。
    由于历史原因,数据库对象文件和业务逻辑文件一个包里,每次要写单元测试就要在本地把这个包的依赖起一次。唉
    Leviathann
        2
    Leviathann  
       2021-07-08 00:55:23 +08:00
    很惭愧,没有 dao 的单测🐶
    来学习下
    xuanbg
        3
    xuanbg  
       2021-07-08 08:08:28 +08:00
    只有接口粒度的单元测试,没有仅仅对某一方法或 DAL 的单元测试。
    louchenabc
        4
    louchenabc  
    OP
       2021-07-08 09:30:05 +08:00
    @xuanbg 这个其实属于集成测试,不属于单测。
    chenqh
        5
    chenqh  
       2021-07-08 11:21:57 +08:00
    @xuanbg 我也是接口级别的测试, 我不管是不是单测, 我只知道我需要测试
    fkdog
        6
    fkdog  
       2021-07-08 22:01:12 +08:00
    单元测试一般测试业务逻辑流程是否正常吧,比如各个分支路径是否覆盖正常、临界值是否正确。
    dao 层大多都是代理类,你要测试基本也就测个 sql 是否正确吧。意义不大。
    想测试的话,那就 test 类里注入 dao 对象,然后测试 dao 方法就行了。测试方法上加上 @Transactional 可以保证跑完方法自动删除测试数据。
    louchenabc
        7
    louchenabc  
    OP
       2021-07-09 00:37:16 +08:00
    @fkdog 是的,说的很好,DAO 层的测试一半只需要覆盖一小部分即可,本文就是针对这些需要覆盖的部分的一些方案。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3315 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:43 · PVG 08:43 · LAX 16:43 · JFK 19:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.