gpt4 book ai didi

python - Pytest断言语法以及如何从pytest函数调用yml文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:38 24 4
gpt4 key购买 nike

这就是我编写单元测试的方式:

def test_valid_number():
check = requests.get("http://testing/validateNumber/021844223")
assert True

def test_invalid_number():
check = requests.get("http://testing/validateNumber/02188441")
assert False

我的问题是:

  1. 如何正确执行断言(使用 pytest)来检查 API 响应?第一个函数是检查有效数字并返回结果:

    {"header":[{"STUDENTNUM":"P56219","STUDENTNAME":"GOLDIE",..... }

第二个功能是检查无效数字与预期返回:

    {"header":[],"headercount":0,"offers":[]}
  • 而不是手动编码网址和学号。如何在 YAML 中创建它以及如何在我的两个函数中调用 YAML 文件。
  • 最佳答案

    Pytest 提供了一个固定装置 monkeypatch,您可以使用它

    def test_valid_number(monkeypatch):
    def patched_get():
    return {"header":[{"STUDENTNUM":"P56219","STUDENTNAME":"GOLDIE"}
    monkeypatch.setattr(requests, 'get', patched_get)
    assert check == {"header":[{"STUDENTNUM":"P56219","STUDENTNAME":"GOLDIE"}

    要读取 YAML 文件,您需要 PyYAML 。使用pip安装它。

    import yaml

    with open("example.yml", "r") as f:
    test_data = yaml.load(f)

    def test_valid_number():
    response = requests.get(test_data['url']).json()
    assert response == test_data['expected']

    YAML 文件如下所示:

    url: "http://testing/validateNumber/021844223"
    expected:
    header:
    -
    STUDENTNUM: "P56219"
    STUDENTNAME: "GOLDIE"
    ......

    关于python - Pytest断言语法以及如何从pytest函数调用yml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52584524/

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