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]#我想模拟这个表达式```