如何使用pytest测试用于生成报告的python函数?

问题描述

我有一个函数可以读取 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文件路径来测试这个功能吗?

解决方法

只要有一个从文件中读取数据的夹具,然后在您的测试中使用该夹具,并测试数据。

然而,这取决于你到底想测试什么,如果只是解析逻辑,或者你从这个文件中查询数据的方式,你可以使用模拟数据(作为不同文件中的字符串),并保存读取文件的时间和不必要的依赖。