@Patch装饰器与pytest装置不兼容

2022-03-01 00:00:00 python mocking pytest fixtures

问题描述

我在使用集成了pytest fixture的mock包中的补丁装饰器时,遇到了一些神秘的事情。

我有两个模块:

    -----test folder
          -------func.py
          -------test_test.py

在func.py中:

    def a():
        return 1

    def b():
        return a()     

在test_test.py中:

    import pytest
    from func import a,b
    from mock import patch,Mock

    @pytest.fixture(scope="module")
    def brands():
        return 1


    mock_b=Mock()

    @patch('test_test.b',mock_b)
    def test_compute_scores(brands):                 
         a()

贴片装饰似乎与最火热的夹具不兼容。有人对此有什么见解吗?谢谢


解决方案

我遇到了同样的问题,我的解决方案是在1.0.1版本中使用模拟库(在我使用2.6.0版本中的unittest.mock之前)。现在它就像一个护身符一样起作用了:)

相关文章