UnitTest in .NET 系列文章目录


Photo :.NET单元测试的艺术

文 | Edison Zhou

这几天陆陆续续更新了UnitTest in .NET这个系列的文章,现将其总结成一个小目录。此外,特别推荐阅读Roy Osherove的《单元测试的艺术》一书,此文也是该书的精华内容的学习笔记总结。

文章目录 

Part 1.基本概念及第一个单元测试

Part 2.使用存根破除依赖

Part 3.使用模拟对象进行交互测试

Part 4.使用模拟框架简化测试代码

Part 5.高效管理与组织单元测试

一些补充 

此系列主要使用的是NUnit + NSub来介绍的,但你也可以用MSTest 或者 xUnit 来实现,模拟框架的话你也可以用同样流行的Moq来做。但是,此类模拟框架都是以模拟接口为目标来设计的,无法模拟静态方法等高级对象,如果你所维护或开发的项目是一个遗留系统,即所谓很多的遗留代码(Legacy Code)的系统,那么建议最好使用一些比较高级的模拟框架,比如JustMock(付费版),它可以模拟静态方法、密封类、私有成员、MsCorLib程序集的成员(比如DateTime.Now)甚至是Silverlight项目代码。

有关JustMock框架的介绍,请移步这里:https://www.telerik.com/products/mocking.aspx

此外,我也强烈建议大家结合Jenkins等CI工具把单元测试引入持续集成的构建之中,这样可以最大限度的发挥单元测试在开发测试过程中的作用。

在Jenkins中提供了Pipeline方便地进行构建流水线,在我的实践中主要是通过开发人员的每一次Check-In到git,触发一个Webhook到Jenkins中从而使持续集成构建任务开始执行:

从图中可以看出,其经历了中台微服务的编译和单元测试 及 BFF(Backend for Frontend)服务的编译和单元测试来保障代码质量,当然前提是有足够的单元测试作为保护层,这也需要开发人员花时间为每个服务接口(或者高价值的部分)写单元测试!

如果构建任务中有一个Stage失败了,那么此构建任务则认为失败,会给开发团队和Leader发送邮件告警:

此外,我们还使用了一个用于大屏显示构建状态的插件—Build Monitor,在我们工作区后方的电视屏上会显示各个构建任务的实时状态,如果有任务失败了会变为红色:

并且,Build Monitor还会将推进不可靠代码的提交者名字(git账号名字)显示在屏幕中的构建任务里边,方便大家查看谁的锅:

参考资料  

Roy Osherove 著,金迎 译,《单元测试的艺术(第2版)》

Edison Zhou,《基于Jenkins的开发测试全流程持续集成实践

Edison Zhou,《基于Jenkins Pipeline的ASP.NET Core持续集成实践

The End

「 码字不易,也希望各位看官看完觉得还行就在本文右下方顺手点个“在看”,那就是对我最大的鼓励!如果觉得很好,也可以转发给你的朋友,让更多人看到,独乐乐不如众乐乐,是吧?

往期精彩回顾

.NET Core on K8S学习与实践系列文章索引目录

.NET Core 微服务学习与实践系列文章索引目录

【资料】2019 .NET China Conf 大会资料下载

【视频】2019 .NET China Conf 大会视频发布

2019 .NET China Conf 路一直都在,社区会更好

基于Jenkins的开发测试全流程持续集成实践

基于Jenkins Pipeline的.NET Core持续集成实践

【导读】我读经典,心旷神怡 - 经典书籍读后感汇总

【导读】我的诗和远方 - 也读唐诗与旅游游记汇总


点个【在看】如何?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值