如何为正在返回方法的方法编写Unittets

时间:2019-05-15 11:32:49

标签: python unit-testing

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

我想为此编写一个单元测试   例如。

assertEqual, assertTrue.. 但是我不知道如何进行测试,我已经对返回一些值或True / False的函数进行了单元测试。 我不想要任何代码只是概念

2 个答案:

答案 0 :(得分:0)

如果您的函数将成功,则返回值将成为get方法的参考。这意味着您可以使用unittest模块的assertEqual方法。如下所示:

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()

注意:如果您的实现包含异常(例如:错误处理的try-except),则可以使用unittest模块的“ assertRaises”方法测试异常情况。来自Official Python documentation

例如。在您的情况下(如果要测试ValueError异常):

with self.assertRaises(ValueError):
    self.assertRaises(your_module.acquisition_required(method))

答案 1 :(得分:0)

尝试一下:

 with self.assertRaises(ValueError):
        self.assertRaises(your_module.acquisition_required(method))