seyoatda
V2EX  ›  问与答

Springboot 项目如何正确设计 dao 层的单元测试?

  •  
  •   seyoatda · Jan 8, 2021 · 3310 views
    This topic created in 2128 days ago, the information mentioned may be changed or developed.

    本人最近才开始学习单元测试。目前许多博客上都只在讲单测的好处,以及测试框架如 Junit,Mockito 此类的使用。但是很少具体到单元测试的设计。所以有一些困惑:

    1. 如果写针对 dao 层的单元测试,应该测试哪些方面呢? sql 的正确性?参数的边界值?
    2. dao 层测试,需要 mock 数据库吗?如果 mock 了,是否就无法检测 sql 的正确性了?那 dao 层还有测试的必要性吗
    3. 有哪些可以学习关于单元测试编写思路以及设计方法的相关书籍推荐吗?

    谢谢~

    9 replies  •  2022-07-18 19:13:44 +08:00
    egglin
    egglin
    Jan 8, 2021
    1
    dao 层我就不 mock 了
    scxiazi
    scxiazi
    Jan 8, 2021
    2
    dao 层我这边是用内存数据库跑
    wysnylc
    wysnylc
    Jan 8, 2021
    3
    黑盒测试
    zoharSoul
    zoharSoul
    Jan 8, 2021
    4
    可以看一下 mybatis 源码里的单元测试
    SuperXRay
    SuperXRay
    Jan 8, 2021
    5
    数据库直接操作,每个测试完毕回滚
    zzzbkl
    zzzbkl
    Jan 8, 2021 via Android
    6
    数据库预置测试数据,单元测试靠 transactional 注解回滚
    个人认为 dao 层单元测试还是有点必要的
    raaaaaar
    raaaaaar
    Jan 8, 2021 via Android
    7
    直接看别人写好的,看别人写了些什么
    seyoatda
    seyoatda
    OP
    Jan 10, 2021
    8
    @egglin
    @scxiazi
    确实我是没有 mock,用的内存数据库进行测试

    @zoharSoul
    @raaaaaar
    看 mybatis 源码是个不错的建议~,谢谢
    seyoatda
    seyoatda
    OP
    Jul 18, 2022
    9
    现在回望现在这个问题,也有了一些自己的理解。虽然在工作中进行 dao 层单测的实践不多。但是总结了这篇文章: https://www.cnblogs.com/JealousSky/p/16491690.html
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2091 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 14:44 · PVG 22:44 · LAX 06:44 · JFK 09:44
    ♥ Do have faith in what you're doing.