Мне нужно написать utest на Python для приведенного ниже метода

#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 получает правильный словарь.