学无止境

少年辛苦终身事,莫向光阴惰寸功。——唐·杜荀鹤《题弟侄书堂》


函数进行单元测试

  • 单个函数进行测试
  • 示例
def delRepeat(data, key):
    """Return delete repeat dict
    >>> delRepeat([{"id": 1, "value": 2}, {"id": 1, "value": 2}, {"id": 2, "value": 3}], "id")
    [{'id': 1, 'value': 2}, {'id': 2, 'value': 3}]
    """
    new_data = []
    values = []
    for d in data:
        if d[key] not in values:
            new_data.append(d)
            values.append(d[key])
    return new_data
  • 执行 python3 -m doctest xxx.py 若无错误提示则通过

  • 方式二

def delRepeat(data, key):
    """Return delete repeat dict
    """
    new_data = []
    values = []
    for d in data:
        if d[key] not in values:
            new_data.append(d)
            values.append(d[key])
    return new_data
    
def del_repeat_tests():
    data = [{"id": 1, "value": 2}, {"id": 1, "value": 2}, {"id": 2, "value": 3}]
    assert len(delRepeat(data, "id")) == 2
  • 执行python3 -m doctest xxx.py若无错误则通过

  • 高效测试的关键是在实现新的函数之后(甚至是之前)立即编写(以及执行)测试,只调用一个函数的测试叫做单元测试,详尽的单元测试是良好程序设计的标志

  • 赋值运算 getitem(x,0)

  • for 循环中使用for _ in data表示这个名称不应出现在任何表达式中