我有一个问题,我需要测试替换变量里面的方法,即:
def find_files(path):
path_dir = os.listdir(path)
...
并且对于测试需求,我必须将path_dir
从os.listdir
的实际结果替换为某个测试列表,即['whatever1.txt', 'whatever2.txt', 'whatever3.txt']
怎么做? BR,Damian
答案 0 :(得分:2)
您可以使用mock.patch
为变量设置返回值。
例如
with patch('os.listdir') as mocked_listdir:
mocked_listdir().return_value = ['.', '..']
find_files(path)
或者您可以设置side effect
with patch('os.listdir') as mocked_listdir:
mocked_listdir().side_effect = some_other_function
find_files(path)
答案 1 :(得分:0)
你应该尝试模拟os.listdir来返回模拟测试数据。