Я пытаюсь запустить модульные тесты для определенной функции и пытаюсь использовать макетные тесты в Python. Тем не менее, он работает так, как ожидалось.
Операторы печати моей функции self.sm.do() выполняются, и я получаю желаемый результат в консоли.Но когда я делаю то же самое, исправляя его вock_stdout и затем запуская print(mock_stdout), я не получаю никаких результатов.
Как это исправить? ?
Я пытаюсь запустить модульные тесты для определенной функции и пытаюсь использовать макетные тесты в Python. Тем не менее, он работает так, как ожидалось. Операторы печати моей функции self.sm.do() выполняются, и я получаю желаемый результат в консоли.Но когда я делаю то же самое, исправляя его вock_stdout и затем запуская print(mock_stdout), я не получаю никаких результатов. Как это исправить? ? [code]import io import unittest from unittest.mock import patch from stack_machine import StackMachine, SMState
class TestStackMachine(unittest.TestCase): def setUp(self):
self.sm = StackMachine()
def test_instance(self): """ Essential: Test class instantiation """ sm = StackMachine() self.assertIsInstance(self.sm, StackMachine)
self.assertEqual(self.sm.top(), out_exp) #print(mock_stdout.getvalue()) self.assertEqual(len(self.sm.stack), len_exp) #my print statements from the called function are executed here if __name__ == '__main__': unittest.main()
[/code] Я пытался установить buffer = False, но все равно не работает