如何在不实例化类的情况下对方法进行单元测试?

Pit*_*kos 1 python methods unit-testing

我有SocketHandler一个方法的类calculate_ticket:

class SocketHandler(A, B, C ..):
    ..

    calculate_ticket(self, key):
        ..
        return ticket

    ..
Run Code Online (Sandbox Code Playgroud)

现在我想测试该方法而不必实例化该类,因为它与很多东西相结合.这可能吗?

che*_*ner 5

有几种方法可以使用该mock库.一种简单的方法是模拟实例本身,然后使用"long"形式调用该方法.

class ClassToTest(object):
    def __init__(self):
        pass

    def method_to_test(self, y):
        self.x = y
        return 5

fake_instance = mock.Mock()
ClassToTest.__init__(fake_instance)
x = ClassToTest.method_to_test(fake_instance, 3)
assert x == 5
assert fake_instance.x == 3
Run Code Online (Sandbox Code Playgroud)