gpt4 book ai didi

python - 你应该在 Python 中测试原始函数吗?

转载 作者:行者123 更新时间:2023-11-28 21:15:33 25 4
gpt4 key购买 nike

我目前正在为我的公司重写一个大型数据框架。我的公司基本上没有测试政策,我想改变它,但我对测试软件还很陌生。因此我想问以下问题 -

如果我有以下功能:

def read_attributes(annotation_file=IMPORTED_PATH):
attributes = {}
with open(annotation_file) as ga:
for idx, line in enumerate(ga):
fields = [field.strip() for field in line.split('\t')]
if idx == 0:
continue
else:
attributes[fields[0]] = fields[6] #0 - sample, 6 - tissue

return attributes

如果我之前有一个测试检查 IMPORTED_PATH 中的文件是否确实存在,我看不到实际对其进行单元测试的意义。

我试图测试生成的 attributes 字典中是否存在某些键,但我认为它是不稳定的,因为 IMPORTED_PATH 中的文件可以更改它的值。我还可以编写一个 if 语句来检查 fields 变量是否具有必要数量的条目,但这更多的是内部检查而不是测试。

我应该对此进行测试吗?我将如何着手?

最佳答案

我认为您正在混合 2 个不同的测试。

  1. IMPORTED_PATH 中存在一个文件(您已经对此进行了单元测试)。

  2. read_attributes 按预期工作。

为了检查 read_attributes 是否按预期工作,我会在已知位置(可能是某个 test_resources 文件夹)创建一个 annotation_file。

不应更改此文件。

由于您知道文件的内容,因此测试应该运行类似于以下内容的内容:

def test_read_attributes():
KNOWN_ANNOTATION_FILE = "path\to\constant\annotation\file"
expected_attributes = <expected_values> # can also be read from a file

attributes = read_attributes(annotation_file=KNOWN_ANNOTATION_FILE)

assert attributes == expected_attributes

我希望我能正确理解您的顾虑并且它能回答您的问题:-)

附言

如果您不熟悉 python 测试,我推荐 pytest(它在 PyCharm 中有一个原生插件)

关于python - 你应该在 Python 中测试原始函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58930965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com