我正在跟随pytest-mock的这个小教程/博客。 我无法理解mocker
是如何工作的,因为没有导入它 - 特别是函数声明def test_mocking_constant_a(mocker):
import mock_examples.functions
from mock_examples.functions import double
def test_mocking_constant_a(mocker):
mocker.patch.object(mock_examples.functions, 'CONSTANT_A', 2)
expected = 4
actual = double() # now it returns 4, not 2
assert expected == actual
一些奇怪的事情发生了,
mocker
具有 pytest-mocker.mocker
的属性/函数,特别是 mocker.patch.object
。但是如果没有导入语句,这怎么可能呢?
mocker
是一种在插件中定义的fixture。这些fixture会在pytest启动时加载,并像所有fixture一样按名称查找。 - MrBean Bremen