Pythonのモックライブラリを理解するのに問題があります。次に例を示します。Aにはtest.pyとanother.pyの2つのファイルがあります
test.py
#!
from mock import patch
from another import C
class A(object):
def method(self):
return 2
@patch('another.C')
@patch('test.A')
class TestB(object):
def test1(self, mA, mC):
print mA, A
print mC, C
another.py
class C(object):
def a(self):
return 3
したがって、質問は「なぜAが出力に含まれるのか:
<MagicMock name='A' id='13985040'> <MagicMock name='A' id='13985040'>
<MagicMock name='C' id='13993936'> <class 'another.C'>
another.pyのクラスにパッチを適用できないのはなぜですか?私の場合、テストする関数が多く、他のファイルからクラスをインポートします。だから私はそれらを正しくする方法を理解できません。
ありがとう