gpt4 book ai didi

python - 什么是基于自定义 http 测试断言的优秀 Python 库?

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

我正在将代码库从 Ruby 转换为 Python。在 Ruby/RSpec 中,我编写了自定义“匹配器”,它允许我像这样黑盒测试 Web 服务:

describe 'webapp.com' do
it 'is configured for ssl' do
expect('www.webapp.com').to have_a_valid_cert
end
end

我想编写代码来扩展具有相同功能的 Python 测试框架。当然,我意识到它看起来可能不一样。它不需要是 BDD。 “断言...”就可以了。 pytest 是扩展的良好候选者吗?是否有编写此类扩展的示例?

最佳答案

是的,pytest 是一个很好的框架,可以满足您的需求。我们使用 pytest 和 requestsPyHamcrest 。看这个例子:

import pytest
import requests
from hamcrest import *

class SiteImpl:
def __init__(self, url):
self.url = url

def has_valid_cert(self):
return requests.get(self.url, verify=True)

@pytest.yield_fixture
def site(request):
# setUp
yield SiteImpl('https://' + request.param)
# tearDown

def has_status(item):
return has_property('status_code', item)

@pytest.mark.parametrize('site', ['google.com', 'github.com'], indirect=True)
def test_cert(site):
assert_that(site.has_valid_cert(), has_status(200))

if __name__ == '__main__':
pytest.main(args=[__file__, '-v'])

上面的代码使用了固定装置site的参数化。 yeld_fixture 还为您提供了设置和拆卸的可能性。您还可以编写内联匹配器has_status,它可以用于轻松读取测试断言。

关于python - 什么是基于自定义 http 测试断言的优秀 Python 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981997/

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