как написать Unittets для метода, который возвращает метод - PullRequest
0 голосов
/ 15 мая 2019
def acquisition_required(method):
    def wrapped_method(self, *args, **kwargs):
        result=some complex code
        if not result:
            some code is here
        else:
            return method(self, *args, **kwargs)
return wrapped_method

Я хотел бы написать Unittest для этого например.

assertEqual, assertTrue.. Но я не знаю, как это проверить, я выполнил unittesting для функции, возвращающей некоторые значения или True / False. Я не хочу никакого кода, просто концепция

1 Ответ

0 голосов
/ 15 мая 2019

Если ваша функция будет успешной, возвращаемое значение будет ссылкой на метод получения. Это означает, что вы можете использовать метод assertEqual модуля unittest. Как ниже:

import unittest 
import your_module

class ConfigParserTestCases(unittest.TestCase):

def test_return_method(self):
    self.assertEqual(your_module.acquisition_required(method), method)

if __name__ == "__main__":
    unittest.main()

Примечание. Если ваша реализация содержит исключения (например, попытка, за исключением обработки ошибок), вы можете протестировать случай исключения с помощью метода assertRaises модуля unittest. Из Официальной документации Python .

Например. в вашем случае (если вы хотите проверить исключение ValueError):

with self.assertRaises(ValueError):
    self.assertRaises(your_module.acquisition_required(method))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...