Python模拟调用两次的类方法

Python模拟调用两次的类方法,python,unit-testing,mocking,Python,Unit Testing,Mocking,我正在尝试模拟类和方法,但是很难理解重复的输出。我有以下资料: 从unittest导入模拟 类SimpleClass(对象): def爆炸(自身): 返回“KABOOM!” def test_simple_class(): obj=SimpleClass() 打印(对象分解()) test_simple_class()#显示“KABOOM!” @mock.patch(“testing.SimpleClass”) def mock_simple_类(mock_类): 打印(f'mock_class

我正在尝试模拟类和方法,但是很难理解重复的输出。我有以下资料:

从unittest导入模拟
类SimpleClass(对象):
def爆炸(自身):
返回“KABOOM!”
def test_simple_class():
obj=SimpleClass()
打印(对象分解())
test_simple_class()#显示“KABOOM!”
@mock.patch(“testing.SimpleClass”)
def mock_simple_类(mock_类):
打印(f'mock_class:{mock_class}')
mock_simple_class()
执行上述代码时,我收到以下信息:

KABOOM!
卡布姆!
模拟课程:
模拟课程:

任何有用的建议都将不胜感激。

我认为这是因为代码将“obj”定义为KABOOM!也在定义“爆炸”“作为KABOOM!所以当它打印它时,它会找到两个定义为KABOOM的对象!所以会同时打印这两个对象。

当使用补丁时,会执行此模块的导入,因此会执行此模块。当我从实际执行模块中断测试时,这不会成为问题。

您使用什么来执行脚本?我正在使用终端。”(python3 testing.py)我得到了同样的行为,我无法解释。这与
unittest
有关。我得到的印象是在
@mock.patch(…)
行中,它导入了这个文件,然后再次运行该文件。