Модульный тест 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()
функция с различными входами сейчас.