首页 > 解决方案 > 对象创建的 Python 补丁不起作用

问题描述

应用程序.py

class UnderTest:
    def one(self):
        print('In one')
        email = EmailSender(None, 'messwage');
        email.send()

电子邮件发件人.py

class EmailSender:
    def __init__(self, config, message):
        self.mess = message;

    def send(self):
        print("should not be invoked")

test_under_test.py

class test_under_test(TestCase):

    @patch('EmailSender.EmailSender')
    def test_one(self, email):
        test = UnderTest()
        email.send.return_value = None;
        test.one();

EmailSender 的“发送”方法不应该被调用,但是,它正在被调用。当我在 EmailSender.one 方法的变量中调试而不是 Mock 对象时,email我看到了 EmailSender 的原始对象,补丁在这里没有按预期工作。我应该怎么办?

标签: python-3.xpytest

解决方案


推荐阅读