• Geek_3b1096
    2021-08-26
    学习了封装其它程序库 ,谢谢老师

    作者回复: 有收获,就不白学

    
    4
  • إ并向你招手إ祥子
    2021-08-08
    老师好,对于lombk注解生成的代码在测试覆盖不到的时候是如何处理的呢? 在业务开发中,有很多VO,DTO之类的实体类对象,这类一部分对象内部可能会有一部分的行为方法,比如转换为别的对象,通常为了简化代码,会使用lombok注解,在单元测试覆盖率的统计中,lombok生成的代码可能是测不到的,同时由于这些对象可能是有除了get set之外的行为的,因此也不能简单的屏蔽在测试覆盖率的检查之外,目前在团队内的做法是让大家补上未覆盖部分的测试,有没有更好的建议呢?

    作者回复: Lombok生成的代码不用测试,没有意义,因为它不是你写的代码,测试覆盖率检查中可以忽略它。

    
    2
  • 大碗
    2021-08-24
    请问老师,样例代码中数据库的测试是使用了一个todo_test的实际mysql数据库是怎么考虑的,不选择用H2是什么考虑呢? 用mysql优点是测试更接近最终的运行环境,也能测试创表语句,缺点:稍微依赖了本地的环境,第一次需要创建数据库表,建账号。用H2的优缺点就反过来。两者在影响测试速度上似乎目前看不出差距

    作者回复: 你的进度超前了,实战后面还有一部分,会讲到这么做的理由,也会讲到Spring项目怎么去做测试。

    
    1
  • davix
    2021-08-21
    老師可否後面詳細講講測試金字塔各層case的設計?哪些放入哪層? 我發現team中有傾向,如果有了集成測試,甚至端到端測試,很多人就願意在集成測試裡寫,不寫單元了,認為反正單元被測到了,而且覆蓋的更多。 在本節cli例子中沒有用單元,還覆蓋了那麼多case,我擔心有人就會覺得之前單元測試可以省掉。

    作者回复: 后面会讲到测试模型,不同的测试如何配比。有的东西是人性,人会倾向于少做事,这是需要团队里立规矩的,需要通过代码评审等机制发现问题。对我来说,覆盖率之所以很重要,就是因为它保证了一个底线。

    
    1
  • 程九森
    2021-08-19
    请问参看代码在哪?

    作者回复: https://github.com/dreamhead/geektime-todo

    
    1
  • sylan215
    2021-08-16
    这一节的收获: 1、测试环境(数据)准备,是测试中非常重要的一环。 2、从黑盒测试的角度来说,异常测试用例的比率要远大于正常用例的,那么白盒角度也是一样。 3、对于异常类型的覆盖,也需要根据代码实现来选取,比如 catch 所有异常的话,一条异常用例就可以覆盖了,而如果 catch 的是某一个具体用例的话,一定要记得再触发一个没有 catch 的异常哈。 4、要把可测性,作为程序设计的基本要求。 5、测试数据准备,是一个很关键,也很常见的内容,除了mock,一些必须的数据准备还是要做的,所以要自动化,也需要提供数据自动准备的实现,同时在完成后要进行数据清理。

    作者回复: 很好的总结和分享

    
    1
  • X
    2021-08-10
    老师,你好,我想问下 Springboot 开发,在进行 集成测试的时候,有redis 依赖,是怎么进行测试的呢? 尝试过,embedded-redis 这些内嵌数据库,但是这些用起来不太理想,而且年久失修,有很多bug。 想问问老师这方面是怎么处理的。

    作者回复: 嵌入式的 redis 也算不上年久失修吧,最新的版本是2020年6月发布的0.7.3,也就是一年多的时间。 可以看看别人是怎么用的 https://www.baeldung.com/spring-embedded-redis

    
    1
  • 海朋森
    2021-08-07
    老师,你说的覆盖率是通过jacoco来获取的吗? 这个专栏是给开发看的还是qa也可以呢?

    作者回复: 覆盖率我这个工程里用的是Jacobo。这个专栏是写给程序员的,测试人员如果想了解自动化测试的思路也是可以学习的。

    
    1
  • Insist
    2021-08-06
    是否有maven版本的代码?

    作者回复: 你问的是自动化部分吧?这是我在《10x程序员工作法》中介绍的内容。你可以参考着那篇文章自己改出来一个版本,大部分东西东西都有现成的插件。

    
    1
  • lamb
    2022-05-07
    《代码之丑》讲尽可能不要使用静态方法,上来就封装一层静态方法 ???

    作者回复: 我说的是除了程序库,像这里的 JSON 转换,实际上就是一个程序库。

    
    