Jestem równiarka dla początkujących klasy programowania przy użyciu Python. Mój python-fu nie jest zbyt silny, ale chciałbym zautomatyzować niektóre z ocen.Jak testować programy Pythona dla początkujących studentów używające input() (może z unittest?)?
Patrząc online, podoba mi się zestaw testowy PyUnit, choć prawdopodobnie jest trochę obezwładniony, jeśli chcę.
Moim problemem jest to, że nie wiem, jak przekazać dane wejściowe testowe do funkcji ucznia, ponieważ nie używają one argumentów wiersza poleceń lub nawet wielu funkcji, ale wprowadzają dane użytkownika za pomocą funkcji input()
.
Głupi przykład:
#/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()
Na mój głupi przykład, w jaki sposób napisać badanej jednostki, które mogłyby sprawdzić wyjście dla kilku różnych wejść? (jeśli przejdę 2 i 3 do wejścia, wyjściowy ciąg powinien wynosić "Suma to 5")
W dwóch wierszach wejściowych brakuje prawego nawiasu. – Javier
@Javier: Naprawiono. Dzięki, ktoś zredagował moje pytanie i dodał 'eval (' ale nie zamknąłem drugiej strony.) – Jason