#python #mocking #utest
Вопрос:
Прототип функции :
def sample_test(self, param1, param2, optional_param1=False, optional_param2=False,
optional_param3={}):
if optional_param2:
print("In param2")
if optional_param3:
print("In param3")
Теперь, если я вызову метод как sample_test(param1, param2, False, {«ключ»: «val»}) В param2 печатается . optional_param2
назначается dict, и тест выполняется неправильно, как optional_param2
считается True
. Я хочу написать utest для того же самого, чтобы эти ошибки были обнаружены заранее.. Я хочу написать utest для метода, чтобы эти ошибки были пойманы и функция выполнялась эффективно .
Ответ №1:
Вы можете напрямую назначать входные данные, например
def function(v1=0,v2=1):
return (v1,v2)
print(function(v2=7))
>>(0,7)
Включение этого в ваш код может выглядеть так:
sample_test(param1, param2, False, optional_param3={"key":"val"})
в котором option_param2 по умолчанию будет иметь значение False, в то время как option_param3 получает правильный словарь.