- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在将代码库从 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 和 requests和 PyHamcrest 。看这个例子:
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/
在单元格中有这样的文字:Sum(d5:d10),请注意没有“=”。我想在另一个带有“=”的单元格中使用此文本,并计算范围 d5:d10 之和的结果,我想要的返回不是文本。 我的目的不是计算总和,但我想
我在 java 中创建了这个方法,用于指示整数数组是否已排序。它的复杂性是什么?我想如果好的是最坏情况下的 O(1) 是平均情况下的 O(n)? static boolean order(int[]
1.什么样的人,才能称得上“优秀”? 其实就看这三点: (1)普通的人改变结果; (2)优秀的人改变原因; (3)顶级优秀的人改变模型。 2.举个例子: 有一家公司为员工提供午餐和晚餐。 吃着吃着,大
我在表中有一个具有以下公式的列 =IF([@[JoBM]]>0; IF([@[JoBF]]>0;[@[Median1]]/[@[Median2]];"-");"-") 该列看起来像这样:0.9、0.8
根据他们的工作,您如何区分出色的 SQL 开发人员? 示例可能包括: 很少使用 CURSOR,并试图将它们重构掉。 很少使用临时表,并试图将它们重构掉。 自信地处理 OUTER JOIN 中的 NUL
我是一名优秀的程序员,十分优秀!