zoukankan      html  css  js  c++  java
  • 单元测试笔记

      1.测试代码的可读性和非测试代码是同样重要的,它记录了真实代码如何工作和应该如何使用,因此如果测试很容易阅读,使用者对于真实代码的行为会有更好的理解。

      2.好的测试代码应当做到:对使用者隐去不重要的细节,以便最重要的细节会更突出。具体做法,可以构建多个辅助函数,使得测试代码精炼成一行代码:“对于这样的输入/情形,期望有这样的行为/输出”,这除了让代码紧凑而又易读,让测试的表述保持很短还会让增加测试变得很简单。

      3.使用更高级的assert,如python中unittest模块中的assertEqual()方法,该方法在测试失败的时候会给出具体的错误消息,这会对我们有助于改正bug。但是这样也许还不够好,于是我们可以人工打造更好的测试函数,得到更好更完整的错误信息,比如使得得到的错误信息可以按格式打印出:

      input:xxx;

      expected output:xxx;

      actual output:xxx;

      4.精心设计测试输入,基本原则是应当选择一组最简单的输入,使得它能够完整地使用被测代码。在选取测试输入的时候,也不要将所有输入写在一个语句里,最好将输入按类别分成几条语句,比如一句专门用来测试边界条件、一句专门测试缓冲区溢出等。

      5.测试函数的命名也应当讲究规则,最好使用Test_functionName这种格式,名字应具有较好的描述性,不要害怕名字太长或者太繁琐,因为整个代码库不会调用这个函数,因此要避免使用长函数名的理由在这里并不适用。好的函数名相当于一条注释,并且当测试失败的时候,如果输出了该函数的名字,也会有利于更正bug。

  • 相关阅读:
    NYOJ 23 取石子(一)
    XYNUOJ 2026 素数环
    XYNUOJ 1756 魔法工会
    XYNUOJ 1784 胜利大逃亡
    NYOJ 18 The Triangle
    NYOJ 737 合并石子
    XYNUOJ 问题 B: 敌兵布阵
    NYOJ 1063 生活的烦恼
    XYNUOJ 1774 最少拦截系统
    XYNUOJ 1248 排队打水问题
  • 原文地址:https://www.cnblogs.com/gongcr/p/6691115.html
Copyright © 2011-2022 走看看