モック/パッチ フレームワークを理解しようとしていますが、問題があります。ここに私の簡略化されたコードがあります:
file_a.py
class A:
def f(self):
b = B()
b.g()
b.h()
file_b.py
class B:
def g(self):
return network_requests(...)
def h(self):
return "This is should not be mocked."
file_test.py
class SomeTests:
def setUp(self):
with patch('file_b.B', autospec=True) as mock:
mock.g.return_value = "Mocked value"
mock.side_effect = lambda : B()
self.a = A()
def test(self):
self.a.f()
B.g
基本的に、私はテスト内でのみモックしたいのですが、 B.h
. https://docs.python.org/3/library/unittest.mock-examples.html#partial-mockingからアイデアを得ましたB.g
が、まだ嘲笑されていません。
ありがとうございました!