单元测试中的 FIRST 原则

单元测试是软件开发中的基础,遵循FAST原则:快速、独立、可重复、自我验证和及时/完整。每个测试应秒级执行,不依赖外部组件,结果不受环境影响,包含断言以自动判断结果,且应在生产代码前完成。单元测试确保代码质量,是TDD的重要组成部分。
摘要由CSDN通过智能技术生成

单元测试在软件测试中是最基础的测试,它通常在程序员完成编码以后完成,如果是测试驱动的开发 (TDD) 那么更需要在编码完成之前就写好单元测试。单元测试是白盒测试,它只测试软件中的某块代码,而不像集成测试那样需要和软件组件之外的其他组件联合测试,在持续集成 (CI/CD) 中,软件构建 (build) 完成以后的第一个测试可能就是单元测试。

那么程序员在写单元测试的时候要达到什么要求呢? FIRST 原则就是一个指导编写单元测试的原则。FIRST 是下面几个单词的缩写:
Fast,
Isolated/Independent,
Repeatable,
Self-Validating,
Timely/Thorough.

SOLID 设计原则一样, FIRST 经常会在程序员之间的交流中被引用到。下面我们简要介绍一下什么是 FIRST。

Fast 快

程序员的每个单元测试应该很快能够被执行完,如果要给一个标准的话,应该是秒级的。单元测试只测试自己的代码,不应该像集成测试那样,连接外部的组件。如果是和时间相关的测试,不应该真的等待时间流逝再看结果,而应该使用 Mock 来模拟时间。

比如下面的代码,我们通过 IDateTimeProvider 接口,模拟了时间,就不用等一个小时才能拿到结果。这个测试显然能够在 1 秒之内结束。

public interface IDateTimeProvider
{
   
    /// <summary>
    /// Get current date time.
    /// </summary>
    DateTime Now {
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值