问题描述
我有一个函数可以读取 Excel 文件并根据其内容生成报告。如何在pytest中编写测试以检查文件是否生成以及报告是否按预期创建?
import openpyxl
def create_report(file_path):
#open an existing report
xfile = openpyxl.load_workbook(file_path)
sheet = xfile.get_sheet_by_name('Sheet1')
sheet['A1'] = 'hello world'
sheet['A3'] = 22
sheet.cell(row=2,column=2).value = 2
#Write data to excel sheet
#save as new report
xfile.save('test_report.xlsx')
在测试涉及创建新文件以生成报告的功能时,最佳做法是什么? 可以通过Mocking文件路径来测试这个功能吗?
解决方法
只要有一个从文件中读取数据的夹具,然后在您的测试中使用该夹具,并测试数据。
然而,这取决于你到底想测试什么,如果只是解析逻辑,或者你从这个文件中查询数据的方式,你可以使用模拟数据(作为不同文件中的字符串),并保存读取文件的时间和不必要的依赖。