Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在unittest-pytest中替换函数中的变量_Python_Pytest - Fatal编程技术网

Python 如何在unittest-pytest中替换函数中的变量

Python 如何在unittest-pytest中替换函数中的变量,python,pytest,Python,Pytest,我有一个需要测试的替换变量内部方法的问题,即: def find_files(path): path_dir = os.listdir(path) ... 出于测试的需要,我必须将path\u dir从os.listdir的实际结果替换为一些测试列表,即['whatever1.txt','whatever2.txt','whatever3.txt'] 怎么做? BR,Damian您应该尝试mock os.listdir来返回模拟测试数据。您应该尝试mock os.listdir

我有一个需要测试的替换变量内部方法的问题,即:

def find_files(path):
    path_dir = os.listdir(path)
    ...
出于测试的需要,我必须将
path\u dir
os.listdir
的实际结果替换为一些测试列表,即
['whatever1.txt','whatever2.txt','whatever3.txt']

怎么做?
BR,Damian

您应该尝试mock os.listdir来返回模拟测试数据。

您应该尝试mock os.listdir来返回模拟测试数据。

您可以使用它来设置变量的返回值。 比如说

with patch('os.listdir') as mocked_listdir:
    mocked_listdir().return_value = ['.', '..']
    find_files(path)
或者,您也可以设置

您可以使用设置变量的返回值。 比如说

with patch('os.listdir') as mocked_listdir:
    mocked_listdir().return_value = ['.', '..']
    find_files(path)
或者,您也可以设置


您可能需要查看的
修补程序
功能。您可能需要查看的
修补程序
功能。好的,我可以模拟
os.listdir
,但我需要变量
path\u dir
。如果您模拟结果,则需要返回,它将返回这样的结果:当调用它时,它将自动存储到path\u dirOk。我可以模拟
os.listdir
,但我需要变量
path\u dir
。如果用需要返回的结果模拟它,它将返回这样的结果:当调用它时,它将自动存储到path\u dirOk,我有一种思想的幻灭,因为我知道它,并且我使用了它。没关系。感谢您的帮助:)如果我将列表指定为变量,如何模拟?例如``def xyx():x=[s代表列表中的i_示例,如果i>0]#我想模拟这个表达式```谢谢,我有一种思想的幻灭,因为我知道它,而且我用过它。没关系。感谢您的帮助:)如果我将列表指定为变量,如何模拟?例如``def xyx():x=[s代表列表中的i_示例,如果i>0]#我想模拟这个表达式```