【问题标题】:Python Unittest: make sure patched class is calledPython Unittest:确保调用了修补类
【发布时间】:2018-03-23 18:44:08
【问题描述】:

我有以下代码

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

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

【问题讨论】:

  • 如果我在 test_run() 函数级别修补类/方法,我可以轻松地断言它,但现在补丁是在类级别。

标签: python unit-testing ddt


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2020-11-26
    相关资源
    最近更新 更多