我正在尝试模拟类和方法,但是很难理解重复的输出。我有以下几点:
from unittest import mock
class SimpleClass(object):
def explode(self):
return 'KABOOM!'
def test_simple_class():
obj = SimpleClass()
print(obj.explode())
test_simple_class() # displays 'KABOOM!'
@mock.patch("testing.SimpleClass")
def mock_simple_class(mock_class):
print(f'mock_class:{mock_class}')
mock_simple_class()在执行上面的代码时,我收到以下信息:
KABOOM!
KABOOM!
mock_class:<MagicMock name='SimpleClass' id='4302975248'>
mock_class:<MagicMock name='SimpleClass' id='4302270416'>任何有用的建议都将不胜感激。
发布于 2020-08-28 06:13:51
当使用补丁时,将执行此模块的导入,从而执行此模块。当我将测试从实际的执行模块中分离出来时,这将不是一个问题。
发布于 2020-08-28 05:43:20
我想这是因为代码将“obj”定义为KABOOM!同时也将“爆炸”定义为KABOOM!因此,当它打印它时,它会找到两个定义为KABOOM的对象!所以把它们都打印出来。
https://stackoverflow.com/questions/63623650
复制相似问题