0
我試圖在導入兩個其他模塊的類上運行單元測試,並試圖使用mock
修補這些模塊。其中一個模塊在我正在測試的類中實例化,而我無法修補它。看來我已經設法修補另一個。修補在SUT中導入和實例化的模塊
在此代碼中修補sequence.processor
模塊的最佳方法是什麼?
目錄結構
logger.py
parser/
__init__.py
docparser.py
sequence/
__init__.py
processor.py
tests/
testdocparser.py
/parser/docparser.py
import logger
from sequence.processor import Processor
class DocParser(object):
def __init__(self, reader_writer):
self.processor = Processor(reader_writer)
def write_and_parse(self, products):
logger.log(products)
self.processor.process(products)
/tests/testdocparser.py
import unittest
from mock import MagicMock, patch
from parser import docparser
class DocParserTests(unittest.TestCase):
def setUp(self):
self.mock_writer = MagicMock()
self.docparser = docparser.DocParser(self.mock_writer)
@patch("parser.docparser.logger") # This seems to be patched properly
@patch("parser.docparser.Processor") # This is not patched
def test_write_and_parse(self, mock_logger, mock_proc):
products = "products"
self.docparser.write_and_parse(products)
謝謝!這正是我正在尋找的。 – Plasma