【发布时间】:2022-01-04 00:54:30
【问题描述】:
我想测试仅将有效文件添加到有效文件计数中,如下所示:
self.n_valid_files = 0
for file in self.list_of_files:
n_paras = self.count_paras(file)
if n_paras != None:
self.n_valid_files += 1
如果出现问题,count_paras 返回 None。
有没有办法修补和测试:即在self.list_of_files 中提供多个给定文件,然后说count_paras 应该返回一个特定值?
即类似:
my_test_dict = {'filename1': 3, 'filename2': 30, 'filename3': None}
with mock.patch.object(project, 'count_paras') as mock_count:
mock_count.return_value = my_test_dict[what-might-go-here?] # this doesn't work of course
project.process_files(my_test_dict.keys())
...
...问题是多次调用count_paras 而只有一次调用process_files。
【问题讨论】:
-
您可以使用
side_effect代替return_value来提供将在后续调用中使用的返回值列表。
标签: python mocking pytest python-unittest patch