首页 > 解决方案 > Pytests:获取错误函数不使用参数错误

问题描述

我有以下代码

@pytest.fixture
def mock_path_functions(mocker, file_exists=True, file_size=10):
    mock_obj = mock.Mock()
    mock_obj.st_size = file_size
    mocker.patch("os.path.exists", return_value=file_exists)
    mocker.patch("os.stat", return_value=mock_obj)

@pytest.mark.usefixtures("mock_path_functions")
@ytest.mark.parametrize("file_exists,file_size", [(False, 0)])
def test_subscrition_handle_from_file_when_file_is_not_present():
    assert subscrition_handle_from_file("some path") == None

但是我收到以下错误:

In test_subscrition_handle_from_file_when_file_is_not_present: function uses no argument 'file_exists'

如何为 mock_path_function 指定参数?

标签: pythonpytest

解决方案


我认为您只需要将参数传递给您的测试函数,例如

@pytest.mark.usefixtures("mock_path_functions")
@ytest.mark.parametrize("file_exists,file_size", [(False, 0)])
def test_subscrition_handle_from_file_when_file_is_not_present(
    file_exists, file_size
):
    assert subscrition_handle_from_file("some path") == None

推荐阅读