Python 单元测试:确保已调用补丁 class

Python Unittest: make sure patched class is called

我有以下代码

@ddt
@patch('mymodule.myclass', MagicMock)
class MyTest(): 
    @data([val1, val2])
    @unpack 
    def test_run(self, val1, val2):
         ClassA().run(val1, val2)  

如何断言 mymodule.myclass 中的一些方法被调用?

当您在 class 级别对其进行修补时,您会在测试方法中获得对模拟的引用作为参数,例如:

@ddt
@patch('mymodule.myclass', MagicMock)
class MyTest(): 
    @data([val1, val2])
    @unpack 
    def test_run(self, val1, val2, my_class_mock):
         # use my_class_mock   

您可以将此模拟用于多种用途,但在这种情况下,您仍然需要在测试方法中修补 class 以进行断言。