Я грейдер для начинающего класса программирования с использованием Python. Мой python-fu не очень силен сам, но я хотел бы попытаться автоматизировать некоторые оценки.Как тестировать программы Python для начинающих, которые используют input() (возможно, с unittest?)?
В онлайн-поиске мне нравится комплект тестирования, хотя он, вероятно, немного подавлен тем, что я хочу.
Моя проблема заключается в том, что я не уверен, как передавать тестовые входы. Я хочу выполнять функции ученика, поскольку они не используют аргументы командной строки или даже несколько функций, но получают вход пользователя через функцию input()
.
Глупый пример:
#/usr/bin/python3.1
# A silly example python program
def main():
a = int(input("Enter an integer: "))
b = int(input("Enter another integer: "))
c = a+b
print("The sum is %d" % c)
if __name__ == '__main__'
main()
На мой глупый пример, как бы я написать модульный тест, который может проверить выход для нескольких различных входов? (т. е. если я передаю 2 и 3 на вход, выходная строка должна быть «Сумма равна 5»)
Две строки ввода не имеют правильной круглой скобки. – Javier
@Javier: Исправлено. Спасибо, кто-то отредактировал мой вопрос и добавил 'eval (' но не закрыл другую сторону. – Jason