Python 单元测试使用pytest返回值的void方法

Python 单元测试使用pytest返回值的void方法,python,json,unit-testing,testing,pytest,Python,Json,Unit Testing,Testing,Pytest,例如,我如何进行以下方法的单元测试 def list_append(): data = [] for file in files_list: with open(file) as f: data.append(json.load(f)) return data 据我所知,在方法中无法单独测试局部变量的值,但如果我错了,请纠正我。提前谢谢你在说什么局部变量f?在这种情况下,您需要模拟打开,以便首先控制绑定到f的内容;它是一个自由变量

例如,我如何进行以下方法的单元测试

def list_append():
    data = []
    for file in files_list:
        with open(file) as f:
            data.append(json.load(f))
    return data

据我所知,在方法中无法单独测试局部变量的值,但如果我错了,请纠正我。提前谢谢

你在说什么局部变量<代码>f?在这种情况下,您需要模拟
打开
,以便首先控制绑定到
f
的内容;它是一个自由变量,在调用
list\u append
之前,可以通过直接赋值来更改其值。(尽管这强烈地表明
文件列表
应该是函数的一个参数。)我实际上是在说
数据
。我会调查嘲弄。另外,您是对的,
files\u list
是一个全局变量,因此如果我将其作为参数引入可能会更好。您不需要在测试期间模拟
数据或检查其值。调用该函数,并检查其返回值是否与您期望的值一致,并给出适当的“输入”(即
文件的值以及这些文件的相关内容)。