Юнит-тест для скрипта Python3 с использованием unittestPython

Программы на Python
Ответить
Anonymous
 Юнит-тест для скрипта Python3 с использованием unittest

Сообщение Anonymous »


У меня есть небольшой скрипт Python3. Что-то вроде этого

импортировать систему содержимое = sys.stdin.read() распечатать (содержание) Для этого мне нужно написать модульный тест, используя import unittest. Я пытаюсь понять, как имитировать стандартный ввод с помощью unittest.

Я нашел здесь несколько статей

и здесь, но я все равно не смог с этим справиться, потому что после запуска тестовых скриптов программа ожидает от меня ввода стандартного ввода.

Не могли бы вы помочь мне переписать этот код (или написать другой) для тестирования моего скрипта
импортировать модульный тест из патча импорта unittest.mock импортировать модуль_under_test класс MyTestCase(unittest.TestCase): защита setUp(self): # raw_input не изменяется перед тестом утверждать, что модуль_under_test.raw_input равен __builtins__.raw_input защита test_using_with(self): входные_данные = "123" ожидаемый = int (входные_данные) с patch.object(module_under_test, "raw_input", create=True, return_value=ожидается): # create=True необходим, поскольку raw_input не находится в глобальных переменных # модуль_under_test, но на самом деле находится в __builtins__ . фактический = модуль_under_test.function() self.assertEqual(ожидаемое, фактическое) @patch.object(module_under_test, "raw_input", create=True) защита test_using_decorator(self, raw_input): raw_input.return_value = input_data = "123" ожидаемый = int (входные_данные) фактический = модуль_under_test.function() self.assertEqual(ожидаемое, фактическое) защита TearDown (сам): # необработанный ввод восстанавливается после теста утверждать, что модуль_under_test.raw_input равен __builtins__.raw_input если __name__ == "__main__": unittest.main()
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»