2017-02-18 16 views
2

Иногда я пишу небольшие утилиты и упаковываю их в виде пакета python.
Насколько малы? 30 - 60 строк питона.
И мой вопрос, вы думаете, что писать тесты внутри фактического кода плохо? злоупотребление?Написание модульных тестов python внутри фактического кода

Я вижу большие преимущества, такие как примеры использования внутри самого кода, не перескакивая между файлами (опять же из действительно небольших проектов). Пример:

#!/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 

Общая идея взята из рамок мониторинга Риман, который я использую, в Риман вы пишете тесты файл вместе с кодом link

ответ

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 

Из документации:

  • Чтобы проверить, что докстроки модуля обновлены, проверьте, что все интерактивные примеры все еще работают как задокументированные.
  • Выполнение регрессионного тестирования путем проверки того, что интерактивные примеры из тестового файла или тестового объекта работают должным образом.
  • Чтобы написать учебную документацию для пакета, наглядно проиллюстрированную примерами ввода-вывода. В зависимости от того, акцентируются примеры или пояснительный текст, это имеет аромат «грамотного тестирования» или «исполняемой документации»