python中的单元测试,具有用于类文件的大__init__代码

时间:2018-03-09 15:03:48

标签: python unit-testing

我试图理解python中的单元测试。如果我有一个具有大nix-copy-closure函数的类,并且我正在为这个类的成员函数编写单元测试,这需要引用__init__对象,那么最好的方法是什么关于它?

作为后续操作,其中一些函数可能是self,但我们决定保持pythonic,并保留@staticmethods,以便有更简单的方法为这些函数编写测试代码吗?

2 个答案:

答案 0 :(得分:1)

通过单元测试,我假设你的意思是Python中的unittest库。您可以在setUp()方法中为每个测试类实例化您的类。像这样:

class Test_MyClass(unittest.TestCase):

    def setUp(self):
        my_args = get_my_args()
        m = MyClass(my_args)

    def test_my_method(self):
        self.assertEqual(self.m.my_method(some_input), some_result)

答案 1 :(得分:0)

如果实例化您的类需要很长时间,并且多个测试可以使用相同的实例,则可以使用setUpClass

import unittest

class MyTests(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.obj = MyClass()

    def test_stuff(self):
        self.assertEqual(self.obj.thing, 10)