Модульный тест Python

Я новичок в модульном тестировании. Мне было интересно, как вы будете тестировать код ниже, используя тестовый модуль Python. Вы можете использовать любой тип фреймворка для тестирования, но, пожалуйста, не забудьте указать причину и быть подробным Действительно ценю помощь каждого.

Кстати, вы можете вносить изменения в код, если он делает то, что делает сейчас. В любом случае это был БС:P

pyg = 'ay'

original = raw_input('Enter a word:')

word = original.lower()

first = word[0]

    if first == "a" and "e" and "i" and "o" and "u":
        new_word = word + pyg
        print new_word
    else:
        consonant_fix = word[1:]
        new_word = consonant_fix + word[0] + pyg
        print new_word

1 ответ

Я не думаю, что это хороший кандидат для юнит-тестирования.

Ввод / вывод не должен иметь значения.

Лучше преобразовать это в функцию, которая принимает строку, оперирует ею и возвращает новую строку. Затем вы можете написать модульные тесты с конкретными входными данными, чтобы проверить желаемое поведение.

Как написано, ваш код не тестируется.

Вот как я бы переписал это:

def rearrange(original, pyg):
    word = original.lower()
    first = word[0]
    if first == "a" and "e" and "i" and "o" and "u":
        new_word = word + pyg
    else:
        consonant_fix = word[1:]
        new_word = consonant_fix + word[0] + pyg
    return new_word


if __name__ == '__main__':
    pyg = 'ay'
    original = raw_input('Enter a word:')
    print rearrange(original, pyg)

Вы можете проверить это rearrange() функция с различными входами сейчас.

Другие вопросы по тегам