zoukankan      html  css  js  c++  java
  • 没有单元测试,就很难有真正的积累。

    https://github.com/bilibili/sniper/blob/master/thought.md

    单元测试

    单元测试部分不适合开源,只能分享一些相关的思考。

    没有单元测试,就很难有真正的积累。我们的核心业务逻辑基本都有单元测试覆盖。有一次要改支付逻辑,我改完跑通测试后直接移交测试,测试通过,直接上线,一气呵成。我甚至都没自己用 curl 调一下接口,因为我知道,单元测试已经覆盖的已知的关键流程。

    这当然不是什么值得炫耀的事情。但有效的单元测试确实对提高代码的质量有很大的裨益。

    但怎么测才好呢?关键在 mock。Go 对 mock 并不是很友好。而且如果 mock 多了,一方面会极大降低写测试用例的体验;另一方面会导致测试用例真就成单元测试了,可能出现各单元都没问题,但整个系统有问题的情况。

    所以,写测试一定要简单,测试逻辑一定要有效。为实现这两个目标,我们定了两条规则:

    • 外部 http 请求一律 mock,这个基于 jarcoal/httpmock
    • mysql, memcache, redis 直接起服务,各测试用例自行维护自己的测试数据集

    为了进一步降低编写测试用例的复杂度,我们还提供了自动同步表结构和导入种数据的功能。如果测试用例不想手工维护测试数据集,则可以将相关数据写种子数据集。测试框架会自动导入。

  • 相关阅读:
    git忽略已提交过的文件方法
    去除git版本控制
    写博客的初衷
    Substring with Concatenation of All Words
    Course Schedule
    Reverse Words in a String--not finished yet
    Repeated DNA Sequences
    Maximum Product of Word
    Odd Even Linked List
    Reorder List
  • 原文地址:https://www.cnblogs.com/rsapaper/p/14096393.html
Copyright © 2011-2022 走看看