gpt4 book ai didi

python - fileinput.input 的单元测试

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:50 25 4
gpt4 key购买 nike

我有一些代码正在尝试为其编写单元测试。

这是我的功能:

def sanitize_text():
total_text = []

# Regex split to strip non-alphanumeric characters
for line in fileinput.input():
line.casefold()
words = [x for x in re.split("\W",line) if x]
total_text += words

return total_text

我的目的是让这个函数处理作为参数传入的未指定数量的文件,或者使用标准输入,因此 fileinput 似乎是一个很好的方法。

但是,我不知道如何为此编写单元测试,主要是因为我不知道如何传递这个函数“假”输入。

我尝试使用模拟补丁并打开一个假文件,但它似乎没有正确传递给函数。我还尝试过使用模拟补丁来欺骗 sys.argv[1],但这只能让我欺骗文件名,而不能欺骗内容。

为了进行单元测试,有什么好方法可以欺骗这个函数接受虚假输入?

最佳答案

你说这段代码还没有最终成形,所以我将只关注关于如何传递“假输入”的部分。一个常用的技巧是将执行计算的代码部分与与其他代码/库/IO 交互的部分分开:

def add_sanitized_line(text, line):
line.casefold()
# Regex split to strip non-alphanumeric characters
words = [x for x in re.split("\W",line) if x]
text += words

这个函数可以很好地进行单元测试,而不需要模拟。您可以通过为 line 传递您认为必要的任何类型的输入来为其提供“假输入”。

关于python - fileinput.input 的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60143603/

25 4 0
文章推荐: c# - 以编程方式运行 T4
文章推荐: python - TensorFlow 中图像分类的输入/输出形状错误
文章推荐: css - 为什么 CSS 类声明不适用于标记的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com