У меня есть две функции. Функция function2()
вызов function1()
.
Оригинал function1()
получает одно значение из параметра и возвращает одно значение. Я хочу проверить function2()
с макетом function1()
. Но макет function1()
не принятый параметр. Где проблема?
Вызвать макет function1()
без параметра - не проблема. Если я захочу использовать параметр, тест завершится с ошибкой.
function1_mock () отсутствует 1 обязательный позиционный аргумент: 'параметр'.
# application.py
def function1(parameter1):
return parameter1
def function2(parameter2):
return function1('function1') + parameter2
# test_application.py
import unittest
import unittest.mock
import application
class TestCalling(unittest.TestCase):
def function1_mock(self, parameter):
return parameter
@unittest.mock.patch('application.function1', side_effect=function1_mock)
def test_function2(self, mock_function):
self.assertEqual(application.function2('function2'),
'function1function2')
if __name__ == '__main__':
unittest.main()
В этом случае в тесте есть ошибка
TypeError: function1_mock () отсутствует 1 обязательный позиционный аргумент: 'параметр'
Я хочу написать синтаксически правильный код, где фиктивная функция принимает параметр.