编写优秀的单元测试(五)编写测试

本文介绍了编写单元测试的编码约定,推荐使用 Arrange-Act-Assert 流程,强调测试应关注行为而非具体实现,并通过一个使用 Moq 的测试示例进行说明,以帮助开发者更好地编写单元测试。
摘要由CSDN通过智能技术生成

编码约定

当我们要写一个测试方法的时候,一个问题突然蹦入到我们的脑袋:写一个测试有什么固定的编码格式么?事实上,这个问题的标准很多,而我们这里推荐的是:

准备 - 执行 - 断言(Arrange - Act - Assert)

这个流程是:准备用于测试的对象 - 触发执行 - 对输出进行断言

编写的测试颗粒度

怎么写测试是个问题,写多少测试,也一直是个问题。这里我们给出一个建议:

检查行为,而非实现。

具体来说,我们应该跳出具体的实现,把关注点放在我们期望类有怎样的行为上,不应该让实现主导测试,而应该让需求,让设计主导测试。这里就接上了我们之前说的 测试先行 的问题,如果测试后于实现,我们将不可避免的对一些实现代码编写测试,而在设计编码之前编写测试,则能让我们的测试只关心具体需求的实现,进而指导设计。

总的来说,我们一定要避免对于过于细致的实现进行过多的测试,这样会使我们的系统“动弹不得”,任何一个小的修改都会导致测试报错,让我们陷入过多无意义的排错当中去。

编写一个Test

下面我们看一个例子来具体感受一下者三个过程:

  1. 使用NuGet安装Moq
  2. 编写代码
    public class InternetTest
    {
        [Fact]
        public void UserInternetForTranslationTest()
        {
            // 准备
            var m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值