मैं यह समझना चाहता हूं कि किसी आयातित मॉड्यूल से किसी फ़ंक्शन को @patch
कैसे किया जाता है।
यह वह जगह है जहां मैं अब तक हूं।
app/mocking.py:
app.my_module से आयात करें get_user_name def test_method(): वापसी get_user_name() अगर __name__ == "__main__": प्रिंट करें "प्रोग्राम शुरू करना... " test_method()
app/my_module/__init__.py:
def get_user_name(): रिटर्न "अनमॉक्ड यूजर"
test/mock-test.py:
app.mocking import test_method def mock_get_user(): वापसी "इस मूर्खता का मजाक उड़ाया" @patch ("app.my_module.get_user_name") वर्ग MockingTestTestCase(unittest.TestCase): def test_mock_stubs(self, mock_method): mock_method.return_value = "इस मूर्खता का मजाक उड़ाया") ret = test_method() self.assertEqual (सेवानिवृत्त, "इस मूर्खता का मजाक उड़ाया") यदि __name__ == "__main__": Unittest.main()
यह मेरी अपेक्षा के अनुरूप काम नहीं करता है। "पैच्ड" मॉड्यूल केवल get_user_name
का अनमॉक्ड मान लौटाता है। मैं परीक्षण के तहत नामस्थान में आयात किए जा रहे अन्य पैकेजों के तरीकों का मजाक कैसे उड़ा सकता हूं?