首页 > 解决方案 > 在 unittest 中使用补丁模块时,自动完成 pycharm 不起作用

问题描述

以下代码工作正常,这是一个模拟打印功能的非常简单的测试。问题是当我调用 mocked_print 并希望使用assert_called_once_with方法自动完成mocked_print时,编辑器的建议中没有出现。

这是我得到的建议的图像

环境:

import unittest
from unittest import mock

def print_something():
    print('Hello')

class TestFoo(unittest.TestCase):
    def test_print(self):
        with mock.patch('builtins.print') as mocked_print:
            print_something()
            mocked_print.assert_called_once_with("Hello")

标签: pythonautocompletemockingpycharm

解决方案


您可以导航到mock.patch定义并看到它被键入为_patch没有assert_called_once_with.

PyCharm 使用来自typeshed的存根,unittest因此似乎应该修改相应的存根。


推荐阅读