Go光速实战
  • Introduction
  • Golang进阶实战
    • reflect反射实战
    • channel通道实战
      • 1. 如何使用Channel模拟锁
      • 2. 如何使用多协程线程安全并发收集结果
      • 3. 如何控制协程执行顺序
      • 4. 如何控制并发数
      • 5. 统计协程耗时
      • 6. 超时控制
    • 泛型实战
    • 底层原理
      • Go协程调度机制
      • Go channel底层机制
      • Gin洋葱模型
  • Golang微服务实战
    • Gin
    • GRPC
      • proto工具插件集
    • 分布式事务
  • Golang工程化实践
    • 编码规范
    • 目录规范
    • 单元测试
    • 避坑指南
  • Golang设计模式
    • UML
    • 设计原则
    • 创建型
      • 单例模式
      • 工厂模式
    • 结构型
      • 代理模式
      • 建造者模式
      • 装饰器模式
    • 行为型
      • 模板模式
      • 策略模式
    • 选项模式
  • Kubernetes实战
    • 概念
    • 模板
    • Problem
      • 1. Pod里能ping通service IP吗
      • 2. K8S 滚动升级怎么保证零宕机
      • 3. kube-proxy是如何转发流量
    • istio
    • informer
    • kubebuilder
由 GitBook 提供支持
在本页
  1. Golang工程化实践

单元测试

上一页目录规范下一页避坑指南

最后更新于2年前

这有帮助吗?

CtrlK

这有帮助吗?

此开源图书由ithaiq原创,创作不易转载请注明出处

  • 测试类型如下,单元测试和API测试属于白盒测试;集成测试、系统测试、UI测试属于黑盒测试

  • 三种单测概念

    • fake:指为需要测试单元简单模拟了实际运行环境的,确保正常输入和输出即可。

    • stub:为fake添加预定的数据后,便成为了stub(打桩)。

    • mock:stub仅仅是包含了预定数据的fake,并不表明状态不能用于断言,但是mock储存了可用于断言的状态。

  • Go相关单测方式

    • Benchmark:性能测试

    • Table Driven Test:表驱动测试

    • Go Fuzzing:模糊测试(go1.18新加)

  • Go单测相关库或框架

    • testify:断言asset很好用

    • gomock:生成mock打桩代码

    • sqlmock:校验sql和返回sql数据

    • gomonkey:动态补丁无需生成代码,可用于针对非接口函数测试

    • BDD: 测试驱动框架

      • 表驱动测试存在测试用例过多复杂难以维护,不能明确知道每个用例的目的和差别的问题

      • BDD目标是追求每个测试用例都可以描述、并且用例之间达到复用

      • goconvery ginkgo