我正在使用为API编写一些测试。
测试的内容如下:
def test_stackoverflow():
response = stackoverflow(parameter1, parameter2)
assert response.status_code == HTTPStatus.OK
data = response.json()
assert type(data['name']) is str
assert data['lastname'] == "Wilson"在包含实际API调用的另一个文件中调用函数:
def stackoverflow(parameter1, parameter2):
return my_session.post("/api/endpoint",
params={
"parameter1": parameter1,
"parameter2": parameter2
})这种结构有两个主要问题:
name和lastname )。我怎样才能解决这些问题?
发布于 2022-10-05 19:42:35
所以我不能百分之百肯定,我理解你的问题,但让我说两件事:
(1)我的函数堆栈溢出有硬编码的参数。我们不能改变吗?
是的,我们可以!阅读适当的kwargs的使用,它引入关键词参数,这样您就可以制定API调用函数,如下所示:
def stackoverflow(**kwargs):
return my_session.post("/api/endpoint", params=kwargs)只是,在本例中,您必须按如下方式调用该函数:
response = stackoverflow(key1=val1, key2=val2)然后将两个查询/url参数传递给API-调用,即key1和key2,其值分别为val1和val2。
(2)我必须为每个测试修复参数。对于我需要的所有测试,我不能在全球范围内这样做吗?
是的,先生/妈妈!使用非常有用的夹具-装饰工可以通过为任何需要的地方定义参数来极大地简化生活。
旁边的小注释:尝试将isinstance用于类型断言,例如isinstance(数据‘’name‘,str)。
https://stackoverflow.com/questions/73959252
复制相似问题