gpt4 book ai didi

python-3.x - 模拟打印,但允许在测试中使用它

转载 作者:行者123 更新时间:2023-12-03 13:17:25 24 4
gpt4 key购买 nike

可以通过以下方式模拟打印:

import unittest
import builtin

class TestSomething(unittest.TestCase):
@mock.patch('builtins.print')
def test_method(self, print_):
some_other_module.print_something()

然而,这意味着在 python 调试控制台(pydev 调试器)和单元测试方法本身 print不能使用。这是相当不方便的。

有没有办法只模拟 print some_other_module 中的方法而不是在测试模块中?

避免这种情况的一种方法是将测试模块中的 print 的使用与其他仅调用 print 的函数交换。 ,如果没有更好的解决方案,我可以这样做。

最佳答案

@michele 的“最终解决方案”有一个更清洁的替代方案,适用于我的情况:

from unittest import TestCase
from unittest.mock import patch

import module_under_test


class MyTestCase(TestCase):
@patch('module_under_test.print', create=True)
def test_something(self, print_):
module_under_test.print_something()
print_.assert_called_with("print something")

关于python-3.x - 模拟打印,但允许在测试中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27513373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com