Я думаю, вы ищете для тестирования.Тестирование Python
Существует много способов получить автоматический ввод стандартного кода для вашего кода, но тот, который дает лучшие результаты (хотя это необычная практика для начинающих) - это модульное тестирование.Это работает так:
- Вы записываете свой код и делите его на функции (хотя вы можете сделать это в одной функции, но этого следует избегать).
- Вынаписать модульный тест, который посылает некоторые предварительно подготовленные аргументы в ваш код.
- Вы запускаете тест и проверяете, тогда как что-то не так.
Кстати, сам Python имеет библиотеку unittest, котораяоблегчает запуск такого рода тестов.Но для того, чтобы найти нужную вам функциональность (получить вещи в input()
), требуется более продвинутая реализация библиотеки mock
с помощью функции patch
.
Давайте разберемся в коде:
App.py
def printName():
return input("What's your name man?")
Test.py
from unittest.mock import patch
import app
@patch('builtins.input', lambda *args: 'Nolan')
def test_print_name():
# The why we call args there is explained in the link bellow
answer = app.printName() # Will call buitins.input inside it, but it's patched so don't worry about it
assert answer == 'Nolan' # True, so no errors here
if __name__ == "__main__":
test_query_y()
Этот код основан на этомответ
Вам не хватает многих возможностей из библиотеки unittest, поскольку вы не используете классы.Я имею в виду, вы можете использовать его как есть (хотя это может быть не очень хорошая практика).Поэтому я рекомендую вам узнать больше о lib: 3