我需要为以下代码编写一个单元测试用例:
def read_data(self, data):
"""Read data from excel file.
:param data:str, data in file
:return:str, data after reading excel file
"""
try:
read_data = pd.read_excel(data)
return read_data
except Exception as e:
logger.info("Not able to read data. Error :- {}".format(e))
raise e
我正在上述代码中读取一个excel文件,该文件提供了如下数据: refer screenshot。
那么,从Excel工作表读取后如何存储上述数据作为伪数据,以便我可以将其断言为原始数据?
谢谢
答案 0 :(得分:1)
因为我有同样的需求而对此进行遗弃。
this answer可以为您指明正确的方向:
另请参见Saving the Dataframe输出到XlsxWriter文档中的字符串。
从示例中,您可以构建如下内容:
import pandas as pd
import io
# Create a Pandas dataframe from the data.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
output = io.BytesIO()
# Use the BytesIO object as the filehandle.
writer = pd.ExcelWriter(output, engine='xlsxwriter')
# Write the data frame to the BytesIO object.
df.to_excel(writer, sheet_name='Sheet1', index=False)
writer.save()
# Read the BytesIO object back to a data frame - here you should use your method
xlsx_data = pd.read_excel(output)
# Assert that the data frame is the same as the original
pd.testing.assert_frame_equal(xlsx_data, df)
基本上,您可以解决问题:构建一个包含一些数据的数据框,将其保存在类似文件的临时对象中,将该对象传递给您的方法,然后断言该数据与一个相同您创建的。
注意:它需要熊猫0.17 +