我正在尝试为我的搜索功能编写单元测试,该功能将搜索目录并返回与查询匹配的匹配文件列表。在编写单元测试时,我意识到如果给它测试数据,测试数据可能会占用太多空间。我该如何解决这个问题?我曾考虑过模拟测试数据,但对如何做到这一点并不熟悉。当前,这是我的单元测试之一的样子
import search_function
import unittest
class searchDirTest(unittest.TestCase):
def setUp(self):
pass
def test_file_name_case_sensitive(self):
res = search_function.search_function('./testData', 'allsmall')
self.assertEquals(res, ['./testData/allsmall.txt', './testData/testData_subdir/allsmall.txt'])
self.assertNotEquals(res, ['./testData/ALLSMALL.txt'])
if __name__ == "__main__":
unittest.main()
search_function也有2个参数。路径和搜索查询。关于如何实现这一目标的任何指示?
答案 0 :(得分:0)
我建议重构您的search_function
,以便它接受文件名列表并返回所有匹配的文件名,例如case_insensitive_file_match(filenames)
。这很容易测试,并且测试数据易于生成
最好将测试程序外部的内容排除在单元测试之外。这包括读取文件/调用API等