在实际代码中编写python单元测试

时间:2017-02-18 09:54:18

标签: python unit-testing

有时我会编写小实用程序函数并将它们打包为python包 多么小? 30 - 60行蟒蛇 我的问题是你认为在实际代码中编写测试是不是很糟糕?滥用?

我可以看到代码本身内部的使用示例等优点,而不会在文件之间跳转(同样来自非常小的项目)。 例如:

#!/usr/bin/env python
# Actual code
def increment(number, by=1):
    return number += by

# Tests
def test_increment_positive():
    assert increment(1) == 2

def test_increment_negative():
    assert increment(-5) == -4

def test_increment_zero():
    assert increment(0) == 1

从我使用的监控框架riemann获取的一般构思,在riemann中,您将测试文件与代码一起编写link

1 个答案:

答案 0 :(得分:3)

您可以在文档中写下doctests来说明您的功能应该如何使用:

def increment(number, by=1):
    """ Increments the given number by some other number
    >>> increment(3)
    4
    >>> increment(5,3)
    8
    """
    return number += by

来自文档:

  
      
  • 通过验证所有交互式示例是否仍按照文档记录工作来检查模块的文档字符串是否是最新的。
  •   
  • 通过验证测试文件或测试对象中的交互式示例是否按预期工作来执行回归测试。
  •   
  • 编写包的教程文档,用输入输出示例进行说明。取决于是否   示例或说明文本都强调,这有   “文化测试”或“可执行文档”的味道
  •