• 35648

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

单元测试 学习 原

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/0627/4026.html

>>>

单元测试是什么?

在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。

这里的模块,不是 go 里面的包,程序的最小单元应该是某个具体的函数,甚至是某个里面没有任何项目内函数调用的函数。

注意不要把单元测试写成集成测试。单元测试的范围仅仅在这个独立单元中,不依赖其他单元。而集成测试的目的是验证整个系统在真实环境下的功能行为,即将不同模块组合在一起进行测试。集成测试通常需要将项目启动起来,并且可能会依赖外部资源,例如数据库,网络,文件等。

单元测试应该被持续集成系统自动运行,报错了需要优先修复。

单元测试由最熟悉代码的人编写,就是开发者,不是测试者。

需要改造代码,让代码适合单元测试,函数所需的数据都在参数中指定,不要使用全局变量。纯函数是最好做单元测试的,比如 abs, sqrt 这些。

使用依赖注入,控制反转。

每个单元测试消耗的时间要短,最多几秒。

要把单元测试的代码和其他实现功能的代码同等对待,要注意简洁、可读、低重复。

对于外部系统,如 rpc, api 等使用 mock。

少量的磁盘读写可以不用 mock。

数据库为了节省时间使用内存数据库。

好处

  • 减少手工测试时间。
  • 测试都过了,能让人安心。
  • 利于重构,让人更清楚知道改动后影响的逻辑。
  • 降低耦合,依赖多、过于复杂的函数是不方便单元测试的,为了单元测试就得拆成一小块一小块的。

go 语言相关库

  • testify
  • mockery

相关资料

  • 先解决思想:为何要写单元测试
  • 聊聊如何写单元测试
  • 聊聊坚持单元测试编写
  • 如何写出具有良好可测试性的代码?
  • 使用testify和mockery库简化单元测试

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!